nix-configs

Personal NixOS and home-manager configuration files
Log | Files | Refs

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 }