diff options
Diffstat (limited to 'bin/secret')
-rwxr-xr-x | bin/secret | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/bin/secret b/bin/secret new file mode 100755 index 0000000..27391ff --- /dev/null +++ b/bin/secret @@ -0,0 +1,41 @@ +#!/bin/bash +# +# Open and write to a gpg encrypted file +# Will create the file for you if it's not there yet +# +# secret <path/to/file> + +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 <david.runge@frqrec.com>" + +# 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 |