From a8c1608fee73578358c3c17f76b44f0857c38ac0 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 10 Dec 2013 14:15:51 -0200 Subject: Integrating shell with all commands (#34) --- keyringer | 3 ++- lib/keyringer/actions/append | 4 ++-- lib/keyringer/actions/decrypt | 2 +- lib/keyringer/actions/del | 2 +- lib/keyringer/actions/edit | 2 +- lib/keyringer/actions/encrypt | 4 ++-- lib/keyringer/actions/genpair | 2 +- lib/keyringer/actions/help | 1 + lib/keyringer/actions/ls | 2 +- lib/keyringer/actions/recrypt | 2 +- lib/keyringer/actions/shell | 4 +++- lib/keyringer/actions/tree | 2 +- lib/keyringer/actions/usage | 2 +- lib/keyringer/functions | 5 +++-- 14 files changed, 21 insertions(+), 16 deletions(-) create mode 120000 lib/keyringer/actions/help diff --git a/keyringer b/keyringer index e65bef0..33d19ff 100755 --- a/keyringer +++ b/keyringer @@ -131,11 +131,12 @@ ACTION="$2" # Turn off pathname expansion so expansion can work properly set -f -# Export preferences and version for other scripts +# Export globals for other scripts export PREFERENCES="`dirname $CONFIG`/$KEYRING" export KEYRINGER_VERSION export CONFIG_VERSION export KEYRING +export CONFIG # Set functions location if [ -e "`dirname $(readlink -f $0)`/lib/$NAME/functions" ]; then diff --git a/lib/keyringer/actions/append b/lib/keyringer/actions/append index e307056..818a7ac 100755 --- a/lib/keyringer/actions/append +++ b/lib/keyringer/actions/append @@ -8,7 +8,7 @@ LIB="`dirname $0`/../functions" source "$LIB" || exit 1 # Get file -keyringer_get_file "$2" +keyringer_get_file "$RELATIVE_PATH/$2" # Only display directions if we're running append, not append-batch if [ "$BASENAME" == "append" ]; then @@ -17,4 +17,4 @@ fi # Append content to an existing secret ( keyringer_exec decrypt "$BASEDIR" "$FILE" && cat ) | \ - keyringer_exec encrypt-batch $BASEDIR $FILE + keyringer_exec encrypt-batch "$BASEDIR" "$FILE" diff --git a/lib/keyringer/actions/decrypt b/lib/keyringer/actions/decrypt index 2b1401c..aab7881 100755 --- a/lib/keyringer/actions/decrypt +++ b/lib/keyringer/actions/decrypt @@ -8,7 +8,7 @@ LIB="`dirname $0`/../functions" source "$LIB" || exit 1 # Get file -keyringer_get_file "$2" +keyringer_get_file "$RELATIVE_PATH/$2" # Decrypt $GPG --quiet --use-agent -d "$KEYDIR/$FILE" diff --git a/lib/keyringer/actions/del b/lib/keyringer/actions/del index d160ac4..a2514d7 100755 --- a/lib/keyringer/actions/del +++ b/lib/keyringer/actions/del @@ -8,7 +8,7 @@ LIB="`dirname $0`/../functions" source "$LIB" || exit 1 # Get file -keyringer_get_file "$2" +keyringer_get_file "$RELATIVE_PATH/$2" # Set options if [ ! -z "$3" ]; then diff --git a/lib/keyringer/actions/edit b/lib/keyringer/actions/edit index 9a3e488..d303bd5 100755 --- a/lib/keyringer/actions/edit +++ b/lib/keyringer/actions/edit @@ -8,7 +8,7 @@ LIB="`dirname $0`/../functions" source "$LIB" || exit 1 # Get file -keyringer_get_file "$2" +keyringer_get_file "$RELATIVE_PATH/$2" # Set recipients file keyringer_set_recipients "$FILE" diff --git a/lib/keyringer/actions/encrypt b/lib/keyringer/actions/encrypt index 0a40bc1..526eaa1 100755 --- a/lib/keyringer/actions/encrypt +++ b/lib/keyringer/actions/encrypt @@ -65,7 +65,7 @@ if [ ! -z "$3" ]; then FILE="$BASEPATH" fi - keyringer_get_new_file $FILE + keyringer_get_new_file $RELATIVE_PATH/$FILE if [ ! -e "$UNENCRYPTED_FILE" ]; then echo "Error: cannot encrypt $UNENCRYPTED_FILE: path not found." @@ -74,7 +74,7 @@ if [ ! -z "$3" ]; then else UNENCRYPTED_FILE="-" shift - keyringer_get_new_file $* + keyringer_get_new_file $RELATIVE_PATH/$* fi # Set recipients file diff --git a/lib/keyringer/actions/genpair b/lib/keyringer/actions/genpair index f048bc7..6898b0f 100755 --- a/lib/keyringer/actions/genpair +++ b/lib/keyringer/actions/genpair @@ -184,7 +184,7 @@ source "$LIB" || exit 1 # Aditional parameters KEYTYPE="$2" -FILE="$3" +FILE="$RELATIVE_PATH/$3" NODE="$4" OUTFILE="$5" CWD="`pwd`" diff --git a/lib/keyringer/actions/help b/lib/keyringer/actions/help new file mode 120000 index 0000000..ae18295 --- /dev/null +++ b/lib/keyringer/actions/help @@ -0,0 +1 @@ +usage \ No newline at end of file diff --git a/lib/keyringer/actions/ls b/lib/keyringer/actions/ls index bb66263..93f5f75 100755 --- a/lib/keyringer/actions/ls +++ b/lib/keyringer/actions/ls @@ -15,5 +15,5 @@ shift ARGS="`echo "$*" | sed -e "s|^/*||"`" # Run list command -cd "$KEYDIR" && ls $ARGS +cd "$KEYDIR/$RELATIVE_PATH" && ls $ARGS cd "$CWD" diff --git a/lib/keyringer/actions/recrypt b/lib/keyringer/actions/recrypt index 014fef7..7d5c6ae 100755 --- a/lib/keyringer/actions/recrypt +++ b/lib/keyringer/actions/recrypt @@ -9,7 +9,7 @@ source "$LIB" || exit 1 function keyringer_recrypt { # Get file - keyringer_get_file "$1" + keyringer_get_file "$RELATIVE_PATH/$1" # Set recipients file keyringer_set_recipients "$FILE" diff --git a/lib/keyringer/actions/shell b/lib/keyringer/actions/shell index d9a3e07..955dfe8 100755 --- a/lib/keyringer/actions/shell +++ b/lib/keyringer/actions/shell @@ -12,8 +12,10 @@ SHELLPATH="/" # While a "quit" command isn't entered, read STDIN while read -rep "keyringer:/${KEYRING}${SHELLPATH}> " STDIN; do - if [ "$STDIN" == "quit" ]; then + if [ "$STDIN" == "quit" ] || [ "$STDIN" == "exit" ] || [ "$STDIN" == "bye" ]; then break + elif [ "$STDIN" == "shell" ]; then + echo "Why you need nesting?" elif [[ "$STDIN" == "cd"* ]]; then # Update current path diff --git a/lib/keyringer/actions/tree b/lib/keyringer/actions/tree index 8e94cb0..a2e272d 100755 --- a/lib/keyringer/actions/tree +++ b/lib/keyringer/actions/tree @@ -27,5 +27,5 @@ else fi # Run list command -cd "$KEYDIR" && $TREE $ARGS +cd "$KEYDIR/$RELATIVE_PATH" && $TREE $ARGS cd "$CWD" diff --git a/lib/keyringer/actions/usage b/lib/keyringer/actions/usage index f4ac0fa..e3369cc 100755 --- a/lib/keyringer/actions/usage +++ b/lib/keyringer/actions/usage @@ -7,4 +7,4 @@ LIB="`dirname $0`/../functions" source "$LIB" || exit 1 -keyringer_usage +keyringer_usage $KEYRING diff --git a/lib/keyringer/functions b/lib/keyringer/functions index bef00d9..f387c46 100755 --- a/lib/keyringer/functions +++ b/lib/keyringer/functions @@ -474,9 +474,10 @@ function keyringer_usage { printf "Usage: %s [arguments]\n\n" "$BASENAME" printf "Available commands: \n\n" keyringer_show_actions | sed -e 's/^/\t/' - printf "\tinit [remote]\n\n" $BASENAME - if [ ! -z "$keyrings" ]; then + # Display only when not in a keyring context + if [ ! -z "$keyrings" ] && [ -z "$1" ]; then + printf "\tinit [remote]\n\n" $BASENAME printf "Available keyrings: %s \n" "$keyrings" fi } -- cgit v1.2.3