restic.nix (749B)
1 { pkgs, ... }: 2 3 let 4 backup-cloud = pkgs.writeShellScriptBin "backup-cloud" '' 5 # variables 6 directories=( "$HOME/docker/" "$HOME/vault/" ) 7 excludes=( "*.jpg" "*.jpeg" "*.mp4" "*.webm" "*.mkv" ) 8 exclude_args=() 9 for ext in "''${excludes[@]}"; do 10 exclude_args+=("--exclude=$ext") 11 done 12 # process 13 source "$HOME/vault/docs/secure/restic.env" 14 # Directory loop 15 for dir in "''${directories[@]}"; do 16 if [[ -d "$dir" ]]; then 17 echo "Directory exists: $dir" 18 ${pkgs.restic}/bin/restic backup "$dir" "''${exclude_args[@]}" 19 else 20 echo "Directory does not exist: $dir" 21 fi 22 done 23 ''; 24 in { 25 environment.systemPackages = [ backup-cloud ]; 26 }