From fdc59f9ad53668a22a5b1220bb226e9d332ddf97 Mon Sep 17 00:00:00 2001 From: deadc0de6 Date: Sat, 16 Dec 2017 18:05:42 +0100 Subject: [PATCH] adding ability to specify path for command tree --- catcli/catcli.py | 14 ++++++++++++-- catcli/noder.py | 9 +++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/catcli/catcli.py b/catcli/catcli.py index dc4f73f..712c050 100755 --- a/catcli/catcli.py +++ b/catcli/catcli.py @@ -39,8 +39,9 @@ Usage: {1} ls [--catalog=] [-rV] [] {1} find [--catalog=] [-sV] {1} rm [--catalog=] [-fV] - {1} tree [--catalog=] [-V] + {1} tree [--catalog=] [-V] [] {1} graph [--catalog=] [-V] [] + {1} help {1} --help {1} --version @@ -113,7 +114,12 @@ def cmd_find(args, noder, top): def cmd_tree(args, noder, top): - noder.print_tree(top) + path = args[''] + node = top + if path: + node = noder.get_node(top, path) + if node: + noder.print_tree(node) def cmd_graph(args, noder, top): @@ -132,6 +138,10 @@ def banner(): def main(): args = docopt(USAGE, version=VERSION) + if args['help']: + print(USAGE) + return True + # print banner banner() diff --git a/catcli/noder.py b/catcli/noder.py index 10f5ffb..efc37f6 100644 --- a/catcli/noder.py +++ b/catcli/noder.py @@ -42,6 +42,15 @@ class Noder: ''' return a list of all storage names ''' return [x.name for x in list(top.children)] + def get_node(self, top, path): + ''' get the node at path ''' + r = anytree.resolver.Resolver('name') + try: + return r.get(top, path) + except anytree.resolver.ChildResolverError: + Logger.err('No node at path \"{}\"'.format(path)) + return None + ############################################################### # node creationg ###############################################################