Use gpg2 if available, or fallback to gpg
Use --batch option only if gpg-agent is available (i.e, if GPG_AGENT_INFO is
set)
---
 src/password-store.sh |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/password-store.sh b/src/password-store.sh
index e080627..3f5cd1d 100755
--- a/src/password-store.sh
+++ b/src/password-store.sh
@@ -8,7 +8,11 @@ umask 077
 PREFIX="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
 ID="$PREFIX/.gpg-id"
 GIT_DIR="${PASSWORD_STORE_GIT:-$PREFIX}/.git"
-GPG_OPTS="--quiet --yes --batch"
+GPG=gpg
+[[ -n `which gpg2` ]] && GPG=gpg2
+GPG_OPTS="--quiet --yes"
+[[ -n "$GPG_AGENT_INFO" ]] && GPG_OPTS="$GPG_OPTS --batch"
+X_SELECTION="${PASSWORD_STORE_X_SELECTION:-clipboard}"
 
 export GIT_DIR
 export GIT_WORK_TREE="${PASSWORD_STORE_GIT:-$PREFIX}"
@@ -159,7 +163,7 @@ case "$command" in
 
                if [[ $reencrypt -eq 1 ]]; then
                        find "$PREFIX" -iname '*.gpg' | while read passfile; do
-                               gpg2 -d $GPG_OPTS "$passfile" | gpg2 -e -r 
"$gpg_id" -o "$passfile.new" $GPG_OPTS &&
+                               $GPG -d $GPG_OPTS "$passfile" | $GPG -e -r 
"$gpg_id" -o "$passfile.new" $GPG_OPTS &&
                                mv -v "$passfile.new" "$passfile"
                        done
                        git_add_file "$PREFIX" "Reencrypted entire store using 
new GPG id $gpg_id."
@@ -210,9 +214,9 @@ case "$command" in
                passfile="$PREFIX/$path.gpg"
                if [[ -f $passfile ]]; then
                        if [[ $clip -eq 0 ]]; then
-                               exec gpg2 -d $GPG_OPTS "$passfile"
+                               exec $GPG -d $GPG_OPTS "$passfile"
                        else
-                               pass="$(gpg2 -d $GPG_OPTS "$passfile" | head -n 
1)"
+                               pass="$($GPG -d $GPG_OPTS "$passfile" | head -n 
1)"
                                [[ -n $pass ]] || exit 1
                                clip "$pass" "$path"
                        fi
@@ -257,7 +261,7 @@ case "$command" in
                if [[ $multiline -eq 1 ]]; then
                        echo "Enter contents of $path and press Ctrl+D when 
finished:"
                        echo
-                       gpg2 -e -r "$ID" -o "$passfile" $GPG_OPTS
+                       $GPG -e -r "$ID" -o "$passfile" $GPG_OPTS
                elif [[ $noecho -eq 1 ]]; then
                        while true; do
                                read -r -p "Enter password for $path: " -s 
password
@@ -265,7 +269,7 @@ case "$command" in
                                read -r -p "Retype password for $path: " -s 
password_again
                                echo
                                if [[ $password == "$password_again" ]]; then
-                                       gpg2 -e -r "$ID" -o "$passfile" 
$GPG_OPTS <<<"$password"
+                                       $GPG -e -r "$ID" -o "$passfile" 
$GPG_OPTS <<<"$password"
                                        break
                                else
                                        echo "Error: the entered passwords do 
not match."
@@ -273,7 +277,7 @@ case "$command" in
                        done
                else
                        read -r -p "Enter password for $path: " -e password
-                       gpg2 -e -r "$ID" -o "$passfile" $GPG_OPTS <<<"$password"
+                       $GPG -e -r "$ID" -o "$passfile" $GPG_OPTS <<<"$password"
                fi
                git_add_file "$passfile" "Added given password for $path to 
store."
                ;;
@@ -295,11 +299,11 @@ case "$command" in
 
                action="Added"
                if [[ -f $passfile ]]; then
-                       gpg2 -d -o "$tmp_file" $GPG_OPTS "$passfile" || exit 1
+                       $GPG -d -o "$tmp_file" $GPG_OPTS "$passfile" || exit 1
                        action="Edited"
                fi
                ${EDITOR:-vi} "$tmp_file"
-               while ! gpg2 -e -r "$ID" -o "$passfile" $GPG_OPTS "$tmp_file"; 
do
+               while ! $GPG -e -r "$ID" -o "$passfile" $GPG_OPTS "$tmp_file"; 
do
                        echo "GPG encryption failed. Retrying."
                        sleep 1
                done
@@ -337,7 +341,7 @@ case "$command" in
 
                pass="$(pwgen -s $symbols $length 1)"
                [[ -n $pass ]] || exit 1
-               gpg2 -e -r "$ID" -o "$passfile" $GPG_OPTS <<<"$pass"
+               $GPG -e -r "$ID" -o "$passfile" $GPG_OPTS <<<"$pass"
                git_add_file "$passfile" "Added generated password for $path to 
store."
                
                if [[ $clip -eq 0 ]]; then
-- 
1.7.2.5

_______________________________________________
Password-Store mailing list
[email protected]
http://lists.zx2c4.com/mailman/listinfo/password-store

Reply via email to