about summary refs log tree commit diff
path: root/home/packages
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2023-04-30 14:44:45 -0700
committerFranck Cuny <franck@fcuny.net>2023-04-30 14:47:57 -0700
commitccebd915be9e267b9f445d31c31e5b34a4b2adbf (patch)
treec492964ebd623479b81487ca8191f05eda62697e /home/packages
parenthome/packages: add a wrapper for restic on the nas (diff)
downloadworld-ccebd915be9e267b9f445d31c31e5b34a4b2adbf.tar.gz
home/packages: rewrite scripts to use writeShellApplication
This function produces a shell script with dependencies, set the PATH,
set some SHELLOPTS, and check the script with shellcheck.
Diffstat (limited to '')
-rw-r--r--home/packages/default.nix20
1 files changed, 11 insertions, 9 deletions
diff --git a/home/packages/default.nix b/home/packages/default.nix
index fbf258f..e6e4a5b 100644
--- a/home/packages/default.nix
+++ b/home/packages/default.nix
@@ -1,17 +1,19 @@
 { config, lib, pkgs, ... }:
 let
   cfg = config.my.home.packages;
-  album-to-nas = pkgs.writeShellScriptBin "album-to-nas" ''
-    set -euo pipefail
+  album-to-nas = pkgs.writeShellApplication {
+    name = "album-to-nas";
+    runtimeInputs = [ pkgs.jq pkgs.tailscale ];
+    text = ''
+      ALBUM_PATH="''${1}"
+      ALBUM_NAME=$(basename "''${ALBUM_PATH}")
 
-    ALBUM_PATH="''${1}"
-    ALBUM_NAME=$(basename "''${ALBUM_PATH}")
-    NAS=$(${pkgs.tailscale}/bin/tailscale status --json | ${pkgs.jq}/bin/jq -r '.Peer | map(select(.HostName == "tahoe"))[0].TailscaleIPs[0]')
-
-    scp "''${ALBUM_PATH}" "''${NAS}:~/import/album.zip"
-    ssh "''${NAS}" bc-to-beet ~/import/album.zip
-  '';
+      NAS=$(tailscale status --json | jq -r '.Peer | map(select(.HostName == "tahoe"))[0].TailscaleIPs[0]')
 
+      scp "''${ALBUM_PATH}" "''${NAS}:~/import/album.zip"
+      ssh "''${NAS}" bc-to-beet ~/import/album.zip
+    '';
+  };
   restic-nas = pkgs.writeShellApplication
     {
       name = "restic-nas";