aboutsummaryrefslogtreecommitdiff
path: root/lib/keyringer/actions
diff options
context:
space:
mode:
Diffstat (limited to 'lib/keyringer/actions')
-rwxr-xr-xlib/keyringer/actions/edit8
-rwxr-xr-xlib/keyringer/actions/encrypt17
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