summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2014-02-20 00:22:03 -0300
committerSilvio Rhatto <rhatto@riseup.net>2014-02-20 00:22:03 -0300
commit0fba4b17d2c76784f99de0182d175b2d37f07638 (patch)
treec88e51440f8744234596f638e46d8c27f99d11e3 /lib
parent04b03dd14a0abe02f436f86e3d647f97b3e5522b (diff)
downloadkeyringer-0fba4b17d2c76784f99de0182d175b2d37f07638.tar.gz
keyringer-0fba4b17d2c76784f99de0182d175b2d37f07638.tar.bz2
Try to find a similar file at keyringer_get_file()
Diffstat (limited to 'lib')
-rwxr-xr-xlib/keyringer/actions/find2
-rwxr-xr-xlib/keyringer/functions29
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
}