show root in invirt-getconf, for empty/omitted path
[invirt/packages/invirt-base.git] / files / usr / sbin / invirt-getconf
index bac6596..4f10261 100755 (executable)
@@ -40,11 +40,14 @@ def main(argv):
                 help = 'list node\'s children')
         opts, args = parser.parse_args()
 
                 help = 'list node\'s children')
         opts, args = parser.parse_args()
 
-        try: [key] = args
-        except: raise invirt_exception(__doc__.strip())
+        if len(args) > 1:
+            raise invirt_exception(__doc__.strip())
+        elif args and args[0]:
+            components = args[0].split('.')
+        else:
+            components = []
 
         conf = load(opts.src, opts.cache, opts.refresh)
 
         conf = load(opts.src, opts.cache, opts.refresh)
-        components = key.split('.')
         for i, component in enumerate(components):
             progress = '.'.join(components[:i])
             if type(conf) not in [dict, list]:
         for i, component in enumerate(components):
             progress = '.'.join(components[:i])
             if type(conf) not in [dict, list]:
@@ -60,6 +63,7 @@ def main(argv):
                     '%s: key "%s" not found' % (progress, component))
             except IndexError: raise invirt_exception(
                     '%s: index %s out of range' % (progress, component))
                     '%s: key "%s" not found' % (progress, component))
             except IndexError: raise invirt_exception(
                     '%s: index %s out of range' % (progress, component))
+
         if opts.ls:
             if type(conf) not in [dict, list]:
                 raise invirt_exception(
         if opts.ls:
             if type(conf) not in [dict, list]:
                 raise invirt_exception(