32 lines
965 B
Nix
32 lines
965 B
Nix
{ lib, config, pkgs, ... }:
|
|
|
|
let
|
|
homeDir = config.home.homeDirectory;
|
|
repoDir = "${homeDir}/nix-config";
|
|
|
|
directories = [ "dev" "dl" "img" "img/screen" "wp" ];
|
|
in {
|
|
home.activation.createDirectories = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
|
for dir in ${lib.concatStringsSep " " directories}; do
|
|
$DRY_RUN_CMD mkdir -p "$HOME/$dir"
|
|
done
|
|
'';
|
|
|
|
home.activation.cloneNixConfig = lib.hm.dag.entryAfter [ "createDirectories" ] ''
|
|
if [ ! -d "${repoDir}" ]; then
|
|
$DRY_RUN_CMD ${pkgs.git}/bin/git clone https://github.com/barrettruth/nix-config.git "${repoDir}"
|
|
fi
|
|
'';
|
|
|
|
home.activation.linkWallpapers = lib.hm.dag.entryAfter [ "cloneNixConfig" ] ''
|
|
src="${repoDir}/config/screen"
|
|
dest="$HOME/img/screen"
|
|
if [ -d "$src" ]; then
|
|
for f in "$src"/*; do
|
|
[ -f "$f" ] || continue
|
|
name=$(basename "$f")
|
|
[ -L "$dest/$name" ] || $DRY_RUN_CMD ln -sf "$f" "$dest/$name"
|
|
done
|
|
fi
|
|
'';
|
|
}
|