Compare commits

..

2 commits

Author SHA1 Message Date
chaos 937a5df23f
run formatter 2024-03-10 18:29:49 +00:00
chaos dd4bc277d1
add basic music library sync check script 2024-03-10 18:27:22 +00:00
6 changed files with 211 additions and 181 deletions

View file

@ -5,7 +5,8 @@
writeShellApplication, writeShellApplication,
}: let }: let
encryptedUSBData = import ../data/drives/encryptedUSB.nix; encryptedUSBData = import ../data/drives/encryptedUSB.nix;
in writeShellApplication { in
writeShellApplication {
name = "mk-enc-usb"; name = "mk-enc-usb";
runtimeInputs = [ runtimeInputs = [
parted parted
@ -48,4 +49,4 @@ in writeShellApplication {
echo "Naming Partitions" echo "Naming Partitions"
parted "$USB_DEVICE" -- name 1 ${encryptedUSBData.encryptedPartLabel} parted "$USB_DEVICE" -- name 1 ${encryptedUSBData.encryptedPartLabel}
''; '';
} }

View file

@ -6,7 +6,8 @@
writeShellApplication, writeShellApplication,
}: let }: let
driveData = import ../data/drives/encryptedDrive.nix; driveData = import ../data/drives/encryptedDrive.nix;
in writeShellApplication { in
writeShellApplication {
name = "mk-encrypted-drive"; name = "mk-encrypted-drive";
runtimeInputs = [ runtimeInputs = [
parted parted
@ -82,4 +83,4 @@ in writeShellApplication {
echo "mount /dev/mapper/mk_encrypted_drive to install" echo "mount /dev/mapper/mk_encrypted_drive to install"
''; '';
} }

View file

@ -5,7 +5,8 @@
writeShellApplication, writeShellApplication,
}: let }: let
externalDriveData = import ../data/drives/raspberryExternalDrive.nix; externalDriveData = import ../data/drives/raspberryExternalDrive.nix;
in writeShellApplication { in
writeShellApplication {
name = "mk-raspberry-ext-drive"; name = "mk-raspberry-ext-drive";
runtimeInputs = [ runtimeInputs = [
util-linux util-linux
@ -64,4 +65,4 @@ in writeShellApplication {
echo "Closing mapper device" echo "Closing mapper device"
cryptsetup close "mk-raspberry-ext-drive" cryptsetup close "mk-raspberry-ext-drive"
''; '';
} }

View file

@ -21,6 +21,29 @@ in {
'') '')
]; ];
home.file."Music/music-sync-check.sh" = {
executable = true;
text = ''
#!/usr/bin/env bash
SCRIPT_DIR=$( cd -- "$( dirname -- "''${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
cd "''${SCRIPT_DIR}"
ERROR_LOG=$(mktemp -t music-check-log-XXX)
echo "Checking StorageBox sync status"
if rclone check . Storage:Music --exclude "/*.sh" 2>$ERROR_LOG; then
echo "Up to date with StorageBox"
else
echo "An error occured attempting to check sync status:"
cat "$ERROR_LOG"
echo
fi
rm "$ERROR_LOG"
'';
};
home.file."Music/music-sync.sh" = { home.file."Music/music-sync.sh" = {
executable = true; executable = true;
text = '' text = ''
@ -29,7 +52,7 @@ in {
SCRIPT_DIR=$( cd -- "$( dirname -- "''${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) SCRIPT_DIR=$( cd -- "$( dirname -- "''${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
cd "''${SCRIPT_DIR}" cd "''${SCRIPT_DIR}"
rclone sync -P . Storage:Music --exclude music-sync.sh,music-download.sh rclone sync -P . Storage:Music --exclude "/*.sh"
restic-music backup $(fd -t d --max-depth=1 && fd -t f --max-depth=1) restic-music backup $(fd -t d --max-depth=1 && fd -t f --max-depth=1)
TITLE="chaos's Music Library" TITLE="chaos's Music Library"

View file

@ -306,7 +306,8 @@ in rec {
then "secrets-init" then "secrets-init"
else "secrets-init-${name}"; else "secrets-init-${name}";
scripts = genScripts cfg; scripts = genScripts cfg;
in writeShellApplication { in
writeShellApplication {
name = scriptName; name = scriptName;
runtimeInputs = defaultPackages ++ cfg.packages; runtimeInputs = defaultPackages ++ cfg.packages;
text = scripts.initScript; text = scripts.initScript;
@ -319,7 +320,8 @@ in rec {
then "secrets-check" then "secrets-check"
else "secrets-check-${name}"; else "secrets-check-${name}";
scripts = genScripts cfg; scripts = genScripts cfg;
in writeShellApplication { in
writeShellApplication {
name = scriptName; name = scriptName;
runtimeInputs = defaultPackages ++ cfg.checkPackages; runtimeInputs = defaultPackages ++ cfg.checkPackages;
text = scripts.checkScript; text = scripts.checkScript;
@ -344,7 +346,8 @@ in rec {
capabilities = [${concatStringsSep "," (forEach capabilities escapeString)}] capabilities = [${concatStringsSep "," (forEach capabilities escapeString)}]
} }
''); '');
in toFile "vault-policy-${name}.hcl" '' in
toFile "vault-policy-${name}.hcl" ''
${concatStringsSep "\n" policies} ${concatStringsSep "\n" policies}
''; '';
} }

View file

@ -202,7 +202,8 @@ in
(mergeAttrsList (forEach machinesWithContainers (machineName: let (mergeAttrsList (forEach machinesWithContainers (machineName: let
machine = machines.${machineName}; machine = machines.${machineName};
inherit (machine) containers; inherit (machine) containers;
in mergeAttrsList (forEach containers (containerName: { in
mergeAttrsList (forEach containers (containerName: {
"secrets-init-${machineName}-container-${containerName}" = secretsInitScriptForContainer machineName containerName; "secrets-init-${machineName}-container-${containerName}" = secretsInitScriptForContainer machineName containerName;
"vault-policy-${machineName}-container-${containerName}" = vaultPolicyForContainer machineName containerName; "vault-policy-${machineName}-container-${containerName}" = vaultPolicyForContainer machineName containerName;
}))))) })))))