#!/bin/bash # # Open and write to a gpg encrypted file # Will create the file for you if it's not there yet # # secret writeback () { gpg --yes -eq -r "$gpgkey" -o $1 $tmpfile echo "Encrypted file using gpg public key: $gpgkey" chmod 600 $1 echo "Finished working on file: $1." rm $tmpfile echo "Removed temp file $tmpfile" } filetotmp () { gpg --yes -o $tmpfile -d $1 } tmpfile=$(mktemp) gpgkey="David Runge " # if file is available, use it, else create it if [[ -f "$1" ]];then filetotmp $1 echo "File $1 now in $tmpfile ." fi echo "Opening file in $EDITOR" # edit decrypted file in /tmp $EDITOR $tmpfile if [[ $? -gt 0 ]];then echo "Something went wrong with $EDITOR ." echo "Aborting." rm $tmpfile echo "Deleted $tmpfile ." else # write back the file writeback $1 fi