summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2013-12-26 23:56:30 -0200
committerSilvio Rhatto <rhatto@riseup.net>2013-12-26 23:56:30 -0200
commit6e077ce5604f8de1eec8e953248674423254246d (patch)
tree9b0cee6c0bb79ab0a956982c015fa1d422073ae9
parent7468b6ec0df6aa6c594640154eecb02b12cca5e5 (diff)
downloadkeyringer-6e077ce5604f8de1eec8e953248674423254246d.tar.gz
keyringer-6e077ce5604f8de1eec8e953248674423254246d.tar.bz2
Adding mv and rmdir actions
-rw-r--r--ChangeLog6
-rwxr-xr-xlib/keyringer/actions/mv28
-rwxr-xr-xlib/keyringer/actions/rmdir19
-rw-r--r--share/man/keyringer.1.mdwn6
4 files changed, 57 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index eb6b543..401fc64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,12 @@
2013-12-26 - Silvio Rhatto <rhatto@riseup.net>
- New action: find.
+ New actions: find, mv, rmdir
+
+ Support for RELATIVE_FOLDER at git action
2013-12-10 - Silvio Rhatto <rhatto@riseup.net>
- New actions: shell (#34), help, mkdir, teardown.
+ New actions: shell (#34), help, mkdir, teardown
2013-11-26 - 0.2.9 Silvio Rhatto <rhatto@riseup.net>
diff --git a/lib/keyringer/actions/mv b/lib/keyringer/actions/mv
new file mode 100755
index 0000000..aaf6772
--- /dev/null
+++ b/lib/keyringer/actions/mv
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# Move secrets.
+#
+
+# Load functions
+LIB="`dirname $0`/../functions"
+source "$LIB" || exit 1
+
+# Avoid leading slash
+ORIG="$(keyringer_filename `echo "$2" | sed -e "s|^/*||"`)"
+DEST="`echo "$3" | sed -e "s|^/*||"`"
+
+# Set destination
+if [ ! -d "$KEYDIR/$RELATIVE_PATH/$DEST" ]; then
+ keyringer_get_new_file $DEST
+else
+ FILE="$DEST"
+fi
+
+# Check if secret exists
+if ! echo "$ORIG" | grep -q '*' && [ ! -e "$KEYDIR/$RELATIVE_PATH/$ORIG" ]; then
+ echo "Secret not found: $ORIG"
+ exit 1
+fi
+
+# Run move command
+keyringer_exec git "$BASEDIR" mv $ORIG $FILE
diff --git a/lib/keyringer/actions/rmdir b/lib/keyringer/actions/rmdir
new file mode 100755
index 0000000..398cf11
--- /dev/null
+++ b/lib/keyringer/actions/rmdir
@@ -0,0 +1,19 @@
+#!/bin/bash
+#
+# Remove folders.
+#
+
+# Load functions
+LIB="`dirname $0`/../functions"
+source "$LIB" || exit 1
+
+# Aditional parameters
+CWD="`pwd`"
+
+# Avoid leading slash
+shift
+ARGS="`echo "$*" | sed -e "s|^/*||"`"
+
+# Run rmdir command
+cd "$KEYDIR/$RELATIVE_PATH" && rmdir $ARGS
+cd "$CWD"
diff --git a/share/man/keyringer.1.mdwn b/share/man/keyringer.1.mdwn
index c3a8a7c..1cd7a45 100644
--- a/share/man/keyringer.1.mdwn
+++ b/share/man/keyringer.1.mdwn
@@ -62,6 +62,9 @@ ls <*path*>
mkdir <*path*>
: Create a directory inside the repository *keys* folder.
+:rmdir <*path*>
+: Remove an empty folder inside the repository *keys* folder.
+
tree <*path*>
: List contents from the toplevel repository *keys* folder or from relative paths
if *path* is specified using a tree-like format. Like the ls wrapper, this is a
@@ -116,6 +119,9 @@ del <*secret*>
rm <*secret*>
: Alias for *del* action.
+mv <*secret*> <*dest*>
+: Rename a secret.
+
edit <*secret*>
: Edit a secret by temporarily decrypting it, opening the decrypted copy into the
text editor defined by the *$EDITOR* environment variable and then re-encrypting it.