]> err.no Git - pwstore/commitdiff
Fix up formatting of queries, list keys
authorTollef Fog Heen <tfheen@err.no>
Fri, 14 Jun 2013 22:51:57 +0000 (00:51 +0200)
committerTollef Fog Heen <tfheen@err.no>
Fri, 14 Jun 2013 22:51:57 +0000 (00:51 +0200)
pws

diff --git a/pws b/pws
index f0d3cd12db3edb65db43da3bc5bb0bfeb4845d35..1d222cb0508bed545e039b9ca4ccf664c1f783f1 100755 (executable)
--- a/pws
+++ b/pws
@@ -710,7 +710,7 @@ class Get
     io.puts parser.summarize
     io.puts "Decrypts the file, fetches a key and outputs it to stdout."
     io.puts "The file must be in YAML format."
-    io.puts "query is a query, formatted like host/users/root"
+    io.puts "query is a query, formatted like /host/users/root"
     exit(code)
   end
 
@@ -730,8 +730,16 @@ class Get
 
     require 'pp'
 
-    a = what.split("/")
+    a = what.split("/")[1..-1]
     hit = yaml
+    if a.nil?
+      # q = /, so print top level keys
+      puts "Keys:"
+      hit.keys.each do |k|
+        puts "- #{k}"
+      end
+      return
+    end
     a.each do |k|
       hit = hit[k]
     end
@@ -739,7 +747,9 @@ class Get
       STDERR.puts("No such key or invalid lookup expression")
     elsif hit.respond_to?(:keys)
       puts "Keys:"
-      puts hit.keys.join("\n")
+      hit.keys.each do |k|
+        puts "- #{k}"
+      end
     else
         puts hit
     end