summaryrefslogtreecommitdiff
path: root/lib/keyringer/actions/tree
diff options
context:
space:
mode:
Diffstat (limited to 'lib/keyringer/actions/tree')
-rwxr-xr-xlib/keyringer/actions/tree31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/keyringer/actions/tree b/lib/keyringer/actions/tree
new file mode 100755
index 0000000..8e94cb0
--- /dev/null
+++ b/lib/keyringer/actions/tree
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# List keys.
+#
+
+# Thanks http://www.centerkey.com/tree/
+function keyringer_tree {
+ ls -R $* | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
+}
+
+# Load functions
+LIB="`dirname $0`/../functions"
+source "$LIB" || exit 1
+
+# Aditional parameters
+CWD="`pwd`"
+
+# Avoid leading slash
+shift
+ARGS="`echo "$*" | sed -e "s|^/*||"`"
+
+# Check implementation
+if which tree &> /dev/null; then
+ TREE="tree"
+else
+ TREE="keyringer_tree"
+fi
+
+# Run list command
+cd "$KEYDIR" && $TREE $ARGS
+cd "$CWD"