summaryrefslogtreecommitdiff
path: root/bin/guiscripts/mpassgen
diff options
context:
space:
mode:
Diffstat (limited to 'bin/guiscripts/mpassgen')
-rwxr-xr-xbin/guiscripts/mpassgen48
1 files changed, 48 insertions, 0 deletions
diff --git a/bin/guiscripts/mpassgen b/bin/guiscripts/mpassgen
new file mode 100755
index 0000000..a60112b
--- /dev/null
+++ b/bin/guiscripts/mpassgen
@@ -0,0 +1,48 @@
+#!/usr/bin/env sh
+
+input ()
+{
+ # menu prompt for output
+ if [ "$MENUCMD" = "tofi" ]
+ then
+ inp="$(tofi --prompt-text "$1 " </dev/null)"
+ elif [ "$MENUCMD" = "dmenu" ]
+ then
+ inp="$(dmenu -p "$1" < /dev/null)"
+ else
+ echo -n "$1:" >&2
+ read inp
+ fi
+ echo $inp
+}
+# menu select long
+if [ "$MENUCMD" = "tofi" ]
+then
+ menucmd="tofi --prompt login:"
+elif [ "$MENUCMD" = "dmenu" ]
+then
+ menucmd="dmenu -l 10 -g 1 -x -i -p login:"
+else
+ menucmd="fzf"
+fi
+
+choice="$(echo "multiline\nsingle" | $MENUCMD)"
+test -z "${choice}" && exit 1
+
+password="$(input "name:")"
+test -z "${password}" && exit 1
+
+if [ "${choice}" = "multiline" ]
+then
+ login="$(ls -1 ~/.password-store/e-mails |
+ sed 's/\.gpg$//' |
+ $menucmd)"
+ test -z "${login}" && exit 1
+ url="$(input "url:")"
+ test -z "${url}" && exit 1
+ echo "${password}\nlogin: ${login}\nurl: ${url}" |
+ pass insert -mf "${password}"
+ pass generate -ci "${password}"
+else
+ pass generate -cf "${password}"
+fi