diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2021-12-08 11:58:54 +0100 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2021-12-08 11:58:54 +0100 |
commit | f7bfa8f38cba7da1fb54bcf9e778b4dafeea967e (patch) | |
tree | 800a0ebaba60d99b628a1176051eed5e5532a042 | |
parent | e435d8fe627646e485adaae36d08fc115c22fa20 (diff) | |
download | nixos-f7bfa8f38cba7da1fb54bcf9e778b4dafeea967e.tar nixos-f7bfa8f38cba7da1fb54bcf9e778b4dafeea967e.tar.gz nixos-f7bfa8f38cba7da1fb54bcf9e778b4dafeea967e.tar.bz2 nixos-f7bfa8f38cba7da1fb54bcf9e778b4dafeea967e.tar.xz nixos-f7bfa8f38cba7da1fb54bcf9e778b4dafeea967e.zip |
gkleen@sif: sshpass-secret
-rw-r--r-- | accounts/gkleen@sif/default.nix | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 64e1e6c0..4f4897f5 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix | |||
@@ -59,6 +59,30 @@ let | |||
59 | wrapProgram $out/bin/zulip \ | 59 | wrapProgram $out/bin/zulip \ |
60 | --add-flags '--force-device-scale-factor=1.6' | 60 | --add-flags '--force-device-scale-factor=1.6' |
61 | ''; | 61 | ''; |
62 | sshpassSecret = pkgs.writeScriptBin "sshpass-secret" '' | ||
63 | #!${pkgs.zsh}/bin/zsh -e | ||
64 | |||
65 | typeset -a cmd | ||
66 | cmd=() | ||
67 | |||
68 | while | ||
69 | if [[ "$#" -le 0 ]]; then | ||
70 | echo "Insufficient arguments" >&2 | ||
71 | exit 2 | ||
72 | fi | ||
73 | arg="''${1}" | ||
74 | shift | ||
75 | do | ||
76 | [[ "''${arg}" == '--' ]] && break | ||
77 | user=''${arg%@*} | ||
78 | host=''${arg#*@} | ||
79 | exec {fdnum}< <(${pkgs.gnome.libsecret}/bin/secret-tool lookup service sshpass host "''${host}" user "''${user}") | ||
80 | cmd+=(${pkgs.sshpass}/bin/sshpass -d ''${fdnum} -P "''${user}@''${host}'s password:") | ||
81 | done | ||
82 | |||
83 | cmd+=($@) | ||
84 | exec -a ''${cmd[1]} -- $cmd | ||
85 | ''; | ||
62 | in { | 86 | in { |
63 | imports = with flake.nixosModules.userProfiles.${userName}; [ | 87 | imports = with flake.nixosModules.userProfiles.${userName}; [ |
64 | mpv yt-dlp | 88 | mpv yt-dlp |
@@ -279,7 +303,7 @@ in { | |||
279 | skype virt-manager rclone cached-nix-shell xournal discord | 303 | skype virt-manager rclone cached-nix-shell xournal discord |
280 | xmonad worktime fira-code-symbols emacsclientDesktopItem | 304 | xmonad worktime fira-code-symbols emacsclientDesktopItem |
281 | libreoffice xournalpp wrappedChrome nixos-shell virt-viewer | 305 | libreoffice xournalpp wrappedChrome nixos-shell virt-viewer |
282 | freerdp | 306 | freerdp gnome-icon-theme paper-icon-theme sshpassSecret |
283 | ]; | 307 | ]; |
284 | 308 | ||
285 | file = { | 309 | file = { |