feat(fish): add opx to replace secrets in env vars

Amolith created

Change summary

dot_config/private_fish/functions/opx.fish | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Detailed changes

dot_config/private_fish/functions/opx.fish 🔗

@@ -0,0 +1,21 @@
+function opx --description "Run command with 1Password secret refs resolved"
+    set -l env_overrides
+    
+    for var in (set --names -x)
+        set -l value $$var
+        if string match -q 'op://*' -- $value
+            set -l resolved (op read "$value" 2>/dev/null)
+            if test $status -ne 0
+                echo "opx: failed to resolve $var ($value)" >&2
+                return 1
+            end
+            set -a env_overrides "$var=$resolved"
+        end
+    end
+    
+    if test (count $env_overrides) -eq 0
+        $argv
+    else
+        env $env_overrides $argv
+    end
+end