#!/bin/bash # # Edit keys. # # Load functions LIB="`dirname $0`/../functions" source "$LIB" || exit 1 # Get file keyringer_get_file "$2" # Set recipients file keyringer_set_recipients "$FILE" # Get original file EXTENSION FILENAME="$(basename "$FILE" .asc)" FILENAME="$(basename "$FILENAME")" EXTENSION="${FILENAME##*.}" # Set a tmp file keyringer_set_tmpfile $BASENAME.$EXTENSION # Decrypt the information to the file $GPG --yes -o "$TMPWORK" --use-agent -d "$KEYDIR/$FILE" # Action check if [ "$BASENAME" == "edit" ]; then APP="$EDITOR" elif [ "$BASENAME" == "open" ]; then if which xdg-open &> /dev/null; then APP="xdg-open" else echo "You should have xdg-open application to perform this action, aborting." exit 1 fi fi # Prompt echo "Press any key to open the decrypted data with $APP, Ctrl-C to abort" read key $APP "$TMPWORK" # Encrypt again $GPG --yes -o "$KEYDIR/$FILE" --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS_FILE") "$TMPWORK" # Check exit status errcrypt="$?" # Remove temp file keyringer_unset_tmpfile "$TMPWORK" # Check exit status again errwipe="$?" # Error handling must be done after temp file removal if [ "$errcrypt" != "0" ]; then exit "$errcrypt" elif [ "$errwipe" != "0" ]; then exit $errwipe fi