{ pkgs, ... }: let cb-mount = pkgs.writeScriptBin "cb-mount" '' #!${pkgs.bash}/bin/bash DEVICE=/dev/disk/by-path/pci-0000:00:12.0-ata-2-part1 cryptsetup luksOpen ''${DEVICE} external-drive mkdir -p /mnt/external-drive mount /dev/mapper/external-drive /mnt/external-drive ''; cb-sync = pkgs.writeScriptBin "cb-sync" '' #!${pkgs.bash}/bin/bash # Check, if the something is mounted in our sycdir if grep -qs '/mnt/external-drive' /proc/mounts then rsync -rltD '/mnt/palladium/alpha.0/clerie-backup/clerie-backup-replication/' '/mnt/external-drive/clerie-backup' else echo "Please plug in a backup drive and mount it using cb-mount" fi ''; cb-unmount = pkgs.writeScriptBin "cb-unmount" '' #!${pkgs.bash}/bin/bash umount /mnt/external-drive cryptsetup luksClose external-drive ''; in { environment.systemPackages = with pkgs; [ pkgs.cryptsetup pkgs.rsync cb-mount cb-sync cb-unmount ]; }