From 43d725d6bf7d1c98804f78a3bbb136cb0e84adb0 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Fri, 25 Apr 2025 15:22:07 +0200 Subject: ... --- accounts/gkleen@sif/default.nix | 2 +- accounts/gkleen@sif/utils/sieve-edit.nix | 24 ++++++++++++++++++++++++ accounts/gkleen@sif/zshrc | 16 ---------------- 3 files changed, 25 insertions(+), 17 deletions(-) create mode 100644 accounts/gkleen@sif/utils/sieve-edit.nix diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 3b3c7fc5..6574af9d 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix @@ -404,7 +404,7 @@ in { nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts swtpm (hunspellWithDicts (with hunspellDicts; [en_GB-large de_DE])) # synadm - ]; + ] ++ mapAttrsToList (_name: pkg: pkgs.callPackage pkg {}) (customUtils.nixImport { dir = ./utils; }); file = { ".backup-munin".source = ./backup-patterns; diff --git a/accounts/gkleen@sif/utils/sieve-edit.nix b/accounts/gkleen@sif/utils/sieve-edit.nix new file mode 100644 index 00000000..f985a3f6 --- /dev/null +++ b/accounts/gkleen@sif/utils/sieve-edit.nix @@ -0,0 +1,24 @@ +pkgs@{ lib, resholve, zsh, sieve-connect, sops, ... }: + +resholve.writeScriptBin "sieve-edit" { + inputs = with pkgs; [sieve-connect sops]; + interpreter = lib.getExe zsh; + execer = with pkgs; [ + "cannot:${lib.getExe sieve-connect}" + "cannot:${lib.getExe sops}" + ]; +} '' + host=$1; shift + case "$host" in + surtr) + sieve-connect -s surtr.yggdrasil.li -m EXTERNAL --clientkey <(sops decrypt $HOME/projects/machines/hosts/surtr/email/ca/gkleen@sif.key) --clientcert $HOME/projects/machines/hosts/surtr/email/ca/gkleen@sif.crt --edit --remotesieve sieve + ;; + ymir) + sieve-connect -s ymir.yggdrasil.li -u gkleen --edit --remotesieve sieve + ;; + *) + echo "Unknown host: ‘$host’" >&2 + return 2 + ;; + esac +'' diff --git a/accounts/gkleen@sif/zshrc b/accounts/gkleen@sif/zshrc index f28ef590..c628e2e9 100644 --- a/accounts/gkleen@sif/zshrc +++ b/accounts/gkleen@sif/zshrc @@ -300,22 +300,6 @@ dichotomic_search() { echo $min } -sieve-edit() { - host=$1; shift - case "$host" in - surtr) - sieve-connect -s surtr.yggdrasil.li -m EXTERNAL --clientkey <(nix run nixos'#'sops -- decrypt ~flk/hosts/surtr/email/ca/gkleen@sif.key) --clientcert ~flk/hosts/surtr/email/ca/gkleen@sif.crt --edit --remotesieve sieve - ;; - ymir) - sieve-connect -s ymir.yggdrasil.li -u gkleen --edit --remotesieve sieve - ;; - *) - echo "Unknown host: ‘$host’" >&2 - return 2 - ;; - esac -} - while read -r -d $'\0' d _ s; do hash -d ${s}=${d} done < <(find ~/projects ~/uni -regextype posix-extended -maxdepth 2 -type d -regex '\S+/[0-9]{2}[ws]/\S+' -print0 2>/dev/null | \ -- cgit v1.2.3