From 49d2e12125f7881e43ebc57895c8eb8a13a8706c Mon Sep 17 00:00:00 2001 From: Kr1ss Date: Wed, 15 May 2019 20:19:55 +0200 Subject: [PATCH] check if .gpg-id is in the pass store on startup The current test did not terminate the script in cases when the user already has a private GPG key, but they'd not initialized the password store. This leads to an infinite loop in the `getpass()` function. The commit fixes https://github.com/LukeSmithxyz/mutt-wizard/issues/204 --- bin/mw | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/mw b/bin/mw index 636a837..a415f0e 100755 --- a/bin/mw +++ b/bin/mw @@ -1,6 +1,10 @@ #!/bin/sh command -V gpg >/dev/null 2>&1 && GPG="gpg" || GPG="gpg2" -! "$GPG" --list-secret-keys $(cat "$HOME/.password-store/.gpg-id") >/dev/null 2>&1 && printf "\`pass\` must be installed and initialized to encrypt passwords.\\nBe sure it is installed and run \`pass init \`.\\nIf you don't have a GPG public private key pair, run \`$GPG --full-gen-key\` first.\\n" && exit +[ -r "$HOME/.password-store/.gpg-id" ] && + "$GPG" --list-secret-keys $(cat "$HOME/.password-store/.gpg-id") >/dev/null 2>&1 || { + printf "\`pass\` must be installed and initialized to encrypt passwords.\\nBe sure it is installed and run \`pass init \`.\\nIf you don't have a GPG public private key pair, run \`$GPG --full-gen-key\` first.\\n" + exit + } ! command -v mbsync >/dev/null && printf "\`mbsync\` must be installed to run mutt-wizard.\\n" && exit if [[ "$OSTYPE" == "darwin"* ]]; then