diff --git a/catcli/catcli.py b/catcli/catcli.py index 35faf22..48bd596 100755 --- a/catcli/catcli.py +++ b/catcli/catcli.py @@ -39,8 +39,8 @@ USAGE = f""" Usage: {NAME} ls [--catalog=] [--format=] [-aBCrVSs] [] {NAME} find [--catalog=] [--format=] [-aBCbdVsP] [--path=] [] - {NAME} tree [--catalog=] [-aBCVSs] [] {NAME} index [--catalog=] [--meta=...] [-aBCcfnV] + {NAME} tree [--catalog=] [-aBCVSs] [] {NAME} update [--catalog=] [-aBCcfnV] [--lpath=] {NAME} rm [--catalog=] [-BCfV] {NAME} rename [--catalog=] [-BCfV] @@ -152,9 +152,13 @@ def cmd_ls(args, noder, top): path += SEPARATOR if not path.endswith(WILD): path += WILD + + fmt = args['--format'] + if fmt.startswith('fzf'): + raise Exception('fzf is not supported in ls') found = noder.walk(top, path, rec=args['--recursive'], - fmt=args['--format'], + fmt=fmt, raw=args['--raw-size']) if not found: path = args[''] @@ -308,24 +312,28 @@ def main(): catalog.set_metanode(meta) # parse command - if args['index']: - cmd_index(args, noder, catalog, top) - if args['update']: - cmd_update(args, noder, catalog, top) - elif args['find']: - cmd_find(args, noder, top) - elif args['tree']: - cmd_tree(args, noder, top) - elif args['ls']: - cmd_ls(args, noder, top) - elif args['rm']: - cmd_rm(args, noder, catalog, top) - elif args['graph']: - cmd_graph(args, noder, top) - elif args['rename']: - cmd_rename(args, catalog, top) - elif args['edit']: - cmd_edit(args, noder, catalog, top) + try: + if args['index']: + cmd_index(args, noder, catalog, top) + if args['update']: + cmd_update(args, noder, catalog, top) + elif args['find']: + cmd_find(args, noder, top) + elif args['tree']: + cmd_tree(args, noder, top) + elif args['ls']: + cmd_ls(args, noder, top) + elif args['rm']: + cmd_rm(args, noder, catalog, top) + elif args['graph']: + cmd_graph(args, noder, top) + elif args['rename']: + cmd_rename(args, catalog, top) + elif args['edit']: + cmd_edit(args, noder, catalog, top) + except Exception as exc: + Logger.out_err('ERROR ' + str(exc)) + return False return True diff --git a/catcli/noder.py b/catcli/noder.py index 7174dc7..5e78855 100644 --- a/catcli/noder.py +++ b/catcli/noder.py @@ -529,6 +529,7 @@ class Noder: @fmt: output format @raw: raw size output """ + ## TODO error with fzf self._debug(f'searching for \"{key}\"') if not key: # nothing to search for @@ -603,7 +604,7 @@ class Noder: def walk(self, top, path, rec=False, fmt='native', raw=False): """ - walk the tree for ls based on names + walk the tree for "ls" based on names @top: start node @rec: recursive walk @fmt: output format @@ -614,6 +615,7 @@ class Noder: resolv = anytree.resolver.Resolver('name') found = [] try: + # resolve the path in the tree found = resolv.glob(top, path) if len(found) < 1: # nothing found diff --git a/catcli/walker.py b/catcli/walker.py index 649a0a1..797f1ad 100644 --- a/catcli/walker.py +++ b/catcli/walker.py @@ -14,7 +14,7 @@ from catcli.logger import Logger class Walker: """a filesystem walker""" - MAXLINE = 80 - 15 + MAXLINELEN = 80 - 15 def __init__(self, noder, usehash=True, debug=False, logpath=None): @@ -166,8 +166,8 @@ class Walker: # clean Logger.progr(' ' * 80) return - if len(string) > self.MAXLINE: - string = string[:self.MAXLINE] + '...' + if len(string) > self.MAXLINELEN: + string = string[:self.MAXLINELEN] + '...' Logger.progr(f'indexing: {string:80}') def _log2file(self, string):