summaryrefslogtreecommitdiff
path: root/dotfiles-darwin/zsh/functions
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles-darwin/zsh/functions')
-rw-r--r--dotfiles-darwin/zsh/functions/_vault3
-rw-r--r--dotfiles-darwin/zsh/functions/vault19
2 files changed, 22 insertions, 0 deletions
diff --git a/dotfiles-darwin/zsh/functions/_vault b/dotfiles-darwin/zsh/functions/_vault
new file mode 100644
index 0000000..5cab4e5
--- /dev/null
+++ b/dotfiles-darwin/zsh/functions/_vault
@@ -0,0 +1,3 @@
+#compdef vault
+
+_arguments ": :(close open)" ": :_path_files"
diff --git a/dotfiles-darwin/zsh/functions/vault b/dotfiles-darwin/zsh/functions/vault
new file mode 100644
index 0000000..8196772
--- /dev/null
+++ b/dotfiles-darwin/zsh/functions/vault
@@ -0,0 +1,19 @@
+# -*- mode: sh -*-
+
+case $1 in
+ close)
+ hdiutil unmount -quiet $2
+ ;;
+ open)
+ local session=$(op signin --raw)
+ if [[ -z ${session} ]]; then
+ return 1
+ fi
+ op get item ${2:t} --fields password --session ${session} \
+ | hdiutil attach -quiet -stdinpass $2
+ op signout --session ${session}
+ ;;
+ *)
+ return 1
+ ;;
+esac