aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/secret41
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