diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2016-11-09 10:27:57 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2016-11-09 10:27:57 -0200 |
commit | e19c2219a9a4b1962151cd886ef025826e2838c7 (patch) | |
tree | 53c4eaba89b3b564a778f4ec299b6fb19e48bf3d /lib/keyringer/functions | |
parent | 84319a2c2806f623adbff33a804a3338905ebd3e (diff) | |
parent | 321be0df19d4443a4f13ca9870782f7c4ece049f (diff) | |
download | keyringer-e19c2219a9a4b1962151cd886ef025826e2838c7.tar.gz keyringer-e19c2219a9a4b1962151cd886ef025826e2838c7.tar.bz2 |
Merge tag 'upstream_keyringer_0.4.0' into debian
Upstream version 0.4.0
Diffstat (limited to 'lib/keyringer/functions')
-rwxr-xr-x | lib/keyringer/functions | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/lib/keyringer/functions b/lib/keyringer/functions index ab519b2..09b004d 100755 --- a/lib/keyringer/functions +++ b/lib/keyringer/functions @@ -430,16 +430,18 @@ function keyringer_get_option { function keyringer_get_file { FILE="$(keyringer_filename "$RELATIVE_PATH/$1")" - if [ -z "$FILE" ]; then - keyringer_action_usage - exit 1 - elif [ ! -f "$KEYDIR/$FILE" ]; then + if [ ! -f "$KEYDIR/$FILE" ]; then # Try to find a similar file + FILE="" count=0 candidates=(`keyringer_exec find "$BASEDIR" | grep -i "$1" | grep -e '.asc$'`) if [ ! -z "$candidates" ]; then - echo "Could not find exact match for \"$1\", please choose one of the following secrets:" + if [ ! -z "$1" ]; then + echo "Could not find exact match for \"$1\"" + fi + + echo "Choose one of the following or type a pattern:" echo "" for candidate in ${candidates[@]}; do @@ -452,15 +454,20 @@ function keyringer_get_file { if [[ "$option" =~ ^[0-9]+$ ]] && [ ! -z "${candidates[$option]}" ]; then FILE="$(keyringer_filename "$RELATIVE_PATH/${candidates[$option]}")" - else - echo "Invalid option" - exit 1 + elif [ ! -z "$option" ]; then + keyringer_get_file $option fi else - echo "File not found: $KEYDIR/$FILE" - exit 1 + echo "Nothing matches $option, try again." + keyringer_get_file fi fi + + # Probably Ctrl-D was hit + if [ -z "$FILE" ]; then + echo "" + exit + fi } # Get a new file argument @@ -473,7 +480,7 @@ function keyringer_get_new_file { fi # Sanitize and complete file name - FILE="`echo $FILE | sed -e 's/[^A-Za-z0-9.\/\-]/_/g'`" + FILE="`echo $FILE | sed -e 's/[^A-Za-z0-9@.\/\-]/_/g'`" # Warn user about file name change if [ "`basename "$*"`" != "`basename $FILE`" ]; then |