diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2014-02-20 00:22:03 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2014-02-20 00:22:03 -0300 |
commit | 0fba4b17d2c76784f99de0182d175b2d37f07638 (patch) | |
tree | c88e51440f8744234596f638e46d8c27f99d11e3 /lib | |
parent | 04b03dd14a0abe02f436f86e3d647f97b3e5522b (diff) | |
download | keyringer-0fba4b17d2c76784f99de0182d175b2d37f07638.tar.gz keyringer-0fba4b17d2c76784f99de0182d175b2d37f07638.tar.bz2 |
Try to find a similar file at keyringer_get_file()
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/keyringer/actions/find | 2 | ||||
-rwxr-xr-x | lib/keyringer/functions | 29 |
2 files changed, 28 insertions, 3 deletions
diff --git a/lib/keyringer/actions/find b/lib/keyringer/actions/find index 92bec25..21afc7a 100755 --- a/lib/keyringer/actions/find +++ b/lib/keyringer/actions/find @@ -15,5 +15,5 @@ shift ARGS="`echo "$*" | sed -e "s|^/*||"`" # Run find command -cd "$KEYDIR/$RELATIVE_PATH" && find -iname "*$ARGS*" +cd "$KEYDIR/$RELATIVE_PATH" && find -iname "*$ARGS*" | sed -e 's|^./||g' cd "$CWD" diff --git a/lib/keyringer/functions b/lib/keyringer/functions index 5cc92b1..014c2c9 100755 --- a/lib/keyringer/functions +++ b/lib/keyringer/functions @@ -411,8 +411,33 @@ function keyringer_get_file { keyringer_action_usage exit 1 elif [ ! -f "$KEYDIR/$FILE" ]; then - echo "File not found: $KEYDIR/$FILE" - exit 1 + # Try to find a similar file + count=0 + candidates=(`keyringer_exec find "$BASEDIR" "$1" | grep -e '.asc$'`) + + if [ ! -z "$candidates" ]; then + echo "Could not find exact match \"$1\", please chose one" + echo "of the following secrets:" + echo "" + + for candidate in ${candidates[@]}; do + echo -e "\t[$count] $candidate" + let count++ + done + + echo "" + read -p "Enter option: " option + + if [[ "$option" =~ ^[0-9]+$ ]] && [ ! -z "${candidates[$option]}" ]; then + FILE="$(keyringer_filename "$RELATIVE_PATH/${candidates[$option]}")" + else + echo "Invalid option" + exit 1 + fi + else + echo "File not found: $KEYDIR/$FILE" + exit 1 + fi fi } |