From 067608f4f80602385eea3501fecdab7c3f4828e2 Mon Sep 17 00:00:00 2001 From: imbytecat Date: Mon, 13 Apr 2026 18:53:54 +0800 Subject: [PATCH] refactor(fish): use op-env namespace and xdg.configHome for env template path --- home/shell/fish.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/home/shell/fish.nix b/home/shell/fish.nix index 886089b..fd78cef 100644 --- a/home/shell/fish.nix +++ b/home/shell/fish.nix @@ -1,9 +1,13 @@ -{ ... }: +{ config, ... }: +let + envTpl = "${config.xdg.configHome}/op-env/env.tpl"; +in { # ── 1Password env template ────────────────────────── # op:// references only — no real secrets, safe to commit - xdg.configFile."1password/env.tpl".text = '' + # Kept outside ~/.config/op — that dir must be 700 and owned by op CLI + xdg.configFile."op-env/env.tpl".text = '' AI_GATEWAY_BASE_URL={{ op://Private/AI Gateway API/URL }} AI_GATEWAY_API_KEY={{ op://Private/AI Gateway API/credential }} EXA_API_KEY={{ op://Private/Exa API/credential }} @@ -62,10 +66,10 @@ # 1Password → env vars (single op call, silent if locked) function op-env --description "Load secrets from 1Password" - if not type -q op; or not test -f ~/.config/1password/env.tpl + if not type -q op; or not test -f ${envTpl} return 1 end - for line in (op inject < ~/.config/1password/env.tpl 2>/dev/null) + for line in (op inject < ${envTpl} 2>/dev/null) string match -qr '^\s*(#|$)' -- $line; and continue set -l kv (string split -m 1 '=' $line) if test (count $kv) -ge 2