aboutsummaryrefslogtreecommitdiff
path: root/share/keyringer/encrypt
diff options
context:
space:
mode:
Diffstat (limited to 'share/keyringer/encrypt')
-rwxr-xr-xshare/keyringer/encrypt35
1 files changed, 35 insertions, 0 deletions
diff --git a/share/keyringer/encrypt b/share/keyringer/encrypt
new file mode 100755
index 0000000..1245715
--- /dev/null
+++ b/share/keyringer/encrypt
@@ -0,0 +1,35 @@
+#!/bin/bash
+#
+# Encrypt files to multiple recipients.
+#
+
+# Load functions
+LIB="`dirname $0`/../../lib/keyringer/functions"
+source $LIB
+
+# Config
+ACTIONS="`dirname $0`"
+BASEDIR="$1"
+FILE="`keyringer_filename $2`"
+KEYDIR="$BASEDIR/keys"
+RECIPIENTS="$BASEDIR/config/recipients"
+BASENAME="`basename $0`"
+
+# Setup
+if [ -z "$FILE" ]; then
+ echo "Usage: `basename $0` <basedir> <file>"
+ exit 1
+elif [ ! -f "$RECIPIENTS" ]; then
+ echo "No recipient config was found"
+ exit 1
+fi
+
+# Encrypt
+mkdir -p $KEYDIR/`dirname $FILE`
+echo "Type your message and finish your input with EOF (Ctrl-D)."
+gpg --armor -e -s $(keyringer_recipients $RECIPIENTS) - > $KEYDIR/$FILE
+
+# Stage
+if [ -d "$BASEDIR/.git" ]; then
+ keyringer_exec git $KEYDIR add $FILE
+fi