diff options
Diffstat (limited to 'lib/keyringer/actions')
-rwxr-xr-x | lib/keyringer/actions/edit | 8 | ||||
-rwxr-xr-x | lib/keyringer/actions/encrypt | 17 |
2 files changed, 23 insertions, 2 deletions
diff --git a/lib/keyringer/actions/edit b/lib/keyringer/actions/edit index 54d0fec..f6477bf 100755 --- a/lib/keyringer/actions/edit +++ b/lib/keyringer/actions/edit @@ -16,8 +16,13 @@ keyringer_set_recipients "$FILE" # Warn user echo "Make sure that $BASEDIR is atop of an encrypted volume." +# Get original file EXTENSION +FILENAME="$(basename "$FILE" .asc)" +FILENAME="$(basename "$FILENAME")" +EXTENSION="${FILENAME##*.}" + # Set a tmp file -keyringer_set_tmpfile edit +keyringer_set_tmpfile $BASENAME.$EXTENSION # Decrypt the information to the file $GPG --yes -o "$TMPWORK" --use-agent -d "$KEYDIR/$FILE" @@ -26,6 +31,7 @@ if [ "$BASENAME" == "edit" ]; then APP="$EDITOR" elif [ "$BASENAME" == "open" ]; then if which xdg-open &> /dev/null; then + # TODO: set TMPWORK depending on the MIME type (`file -i` or `xdg-mime query filetype`) APP="xdg-open" else echo "You should have xdg-open application to perform this action, aborting." diff --git a/lib/keyringer/actions/encrypt b/lib/keyringer/actions/encrypt index d9d8f96..aadb9fa 100755 --- a/lib/keyringer/actions/encrypt +++ b/lib/keyringer/actions/encrypt @@ -25,10 +25,25 @@ fi # Aditional parameters if [ ! -z "$3" ]; then - keyringer_get_new_file $2 + # Set secret name and original file + FILE="$2" shift 2 UNENCRYPTED_FILE="$*" + # Get original file EXTENSION + FILENAME="$(basename "$UNENCRYPTED_FILE")" + EXTENSION="${FILENAME##*.}" + + # Append file extension in the secret name + # + # Useful when opening files and the application needs the + # extension to guess the file type. + if ! echo $FILE | grep -q -e "\.$EXTENSION$"; then + FILE="$FILE.$EXTENSION" + fi + + keyringer_get_new_file $FILE + if [ ! -f "$UNENCRYPTED_FILE" ]; then echo "Error: cannot encrypt $UNENCRYPTED_FILE: file not found." exit 1 |