]> gitweb.fluxo.info Git - utils-ssh.git/commitdiff
Pretty printing
authorSilvio Rhatto <rhatto@riseup.net>
Tue, 26 Mar 2019 00:40:46 +0000 (21:40 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Tue, 26 Mar 2019 00:40:46 +0000 (21:40 -0300)
ssh-agent-loadkey-menu

index 29a8e6dd0d65b9449f98ad09830285550f1d8e02..a3355610ecdd9c7ce096447939e5a475357fa9ac 100755 (executable)
@@ -15,7 +15,13 @@ fi
 
 # Get available keys
 function __query {
-  ( cd $KEYS && find -name '*.pub' | sed -e 's/.pub$//' | grep -v decomissioned )
+  (
+  cd $KEYS && find -name '*.pub' | sed -e 's/.pub$//' | grep -v decomissioned | while read line; do
+    handle="`echo $line | cut -d '/' -f 3`"
+    type="`echo $line | cut -d '/' -f 2`"
+    echo "$handle ($type)"
+  done
+  )
 }
 
 # List available keys
@@ -30,19 +36,26 @@ function __list {
 
 # Display the keys available in the agent
 function __loaded {
-  echo "Current loaded keys:"
-  echo ""
+  #ssh-add -L | cut -d ' ' -f 3 | sed -e 's/^/\t/'
 
-  ssh-add -L | cut -d ' ' -f 3 | sed -e 's/^/\t/'
+  ssh-add -L | while read line; do
+    handle="$(basename `echo $line | cut -d ' ' -f 3`)"
+    type="`echo $line | cut -d ' ' -f 1 | sed -e 's/^ssh-//'`"
+    echo "$handle ($type)"
+  done | column -t -c 6
 }
 
 # Key chooser mennu
 function __chooser {
+  echo "Usage: $BASENAME <keytype> <handle>"
+  echo ""
   echo "Available keys"
   echo ""
   __list | sed -e 's/^/\t/'
   echo ""
-  __loaded
+  echo "Current loaded keys:"
+  echo ""
+  __loaded | sed -e 's/^/\t/'
   echo ""
 
   read -rep "Choose key: " n
@@ -59,7 +72,9 @@ function __chooser {
 
 # Load a key
 function __load {
-  KEY="$KEYS/$1"
+  HANDLE="$1"
+  TYPE="`echo $2 | sed -e 's/(//' -e 's/)//'`"
+  KEY="$KEYS/$TYPE/$HANDLE"
 
   # Check if the selected option has a custom procedure (monkeysphere, keyringer, etc)
   if [ -x "$KEY.askpass" ]; then
@@ -71,4 +86,8 @@ function __load {
 }
 
 # Dispatch
-__chooser
+if [ ! -z "$2" ]; then
+  __load $*
+else
+  __chooser
+fi