diff options
Diffstat (limited to 'bin/guiscripts/mpassgen')
-rwxr-xr-x | bin/guiscripts/mpassgen | 48 |
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 |