fzf not for ls

pull/29/head
deadc0de6 2 years ago
parent 94f419b025
commit 3d13218486

@ -39,8 +39,8 @@ USAGE = f"""
Usage: Usage:
{NAME} ls [--catalog=<path>] [--format=<fmt>] [-aBCrVSs] [<path>] {NAME} ls [--catalog=<path>] [--format=<fmt>] [-aBCrVSs] [<path>]
{NAME} find [--catalog=<path>] [--format=<fmt>] [-aBCbdVsP] [--path=<path>] [<term>] {NAME} find [--catalog=<path>] [--format=<fmt>] [-aBCbdVsP] [--path=<path>] [<term>]
{NAME} tree [--catalog=<path>] [-aBCVSs] [<path>]
{NAME} index [--catalog=<path>] [--meta=<meta>...] [-aBCcfnV] <name> <path> {NAME} index [--catalog=<path>] [--meta=<meta>...] [-aBCcfnV] <name> <path>
{NAME} tree [--catalog=<path>] [-aBCVSs] [<path>]
{NAME} update [--catalog=<path>] [-aBCcfnV] [--lpath=<path>] <name> <path> {NAME} update [--catalog=<path>] [-aBCcfnV] [--lpath=<path>] <name> <path>
{NAME} rm [--catalog=<path>] [-BCfV] <storage> {NAME} rm [--catalog=<path>] [-BCfV] <storage>
{NAME} rename [--catalog=<path>] [-BCfV] <storage> <name> {NAME} rename [--catalog=<path>] [-BCfV] <storage> <name>
@ -152,9 +152,13 @@ def cmd_ls(args, noder, top):
path += SEPARATOR path += SEPARATOR
if not path.endswith(WILD): if not path.endswith(WILD):
path += WILD path += WILD
fmt = args['--format']
if fmt.startswith('fzf'):
raise Exception('fzf is not supported in ls')
found = noder.walk(top, path, found = noder.walk(top, path,
rec=args['--recursive'], rec=args['--recursive'],
fmt=args['--format'], fmt=fmt,
raw=args['--raw-size']) raw=args['--raw-size'])
if not found: if not found:
path = args['<path>'] path = args['<path>']
@ -308,24 +312,28 @@ def main():
catalog.set_metanode(meta) catalog.set_metanode(meta)
# parse command # parse command
if args['index']: try:
cmd_index(args, noder, catalog, top) if args['index']:
if args['update']: cmd_index(args, noder, catalog, top)
cmd_update(args, noder, catalog, top) if args['update']:
elif args['find']: cmd_update(args, noder, catalog, top)
cmd_find(args, noder, top) elif args['find']:
elif args['tree']: cmd_find(args, noder, top)
cmd_tree(args, noder, top) elif args['tree']:
elif args['ls']: cmd_tree(args, noder, top)
cmd_ls(args, noder, top) elif args['ls']:
elif args['rm']: cmd_ls(args, noder, top)
cmd_rm(args, noder, catalog, top) elif args['rm']:
elif args['graph']: cmd_rm(args, noder, catalog, top)
cmd_graph(args, noder, top) elif args['graph']:
elif args['rename']: cmd_graph(args, noder, top)
cmd_rename(args, catalog, top) elif args['rename']:
elif args['edit']: cmd_rename(args, catalog, top)
cmd_edit(args, noder, 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 return True

@ -529,6 +529,7 @@ class Noder:
@fmt: output format @fmt: output format
@raw: raw size output @raw: raw size output
""" """
## TODO error with fzf
self._debug(f'searching for \"{key}\"') self._debug(f'searching for \"{key}\"')
if not key: if not key:
# nothing to search for # nothing to search for
@ -603,7 +604,7 @@ class Noder:
def walk(self, top, path, rec=False, fmt='native', def walk(self, top, path, rec=False, fmt='native',
raw=False): raw=False):
""" """
walk the tree for ls based on names walk the tree for "ls" based on names
@top: start node @top: start node
@rec: recursive walk @rec: recursive walk
@fmt: output format @fmt: output format
@ -614,6 +615,7 @@ class Noder:
resolv = anytree.resolver.Resolver('name') resolv = anytree.resolver.Resolver('name')
found = [] found = []
try: try:
# resolve the path in the tree
found = resolv.glob(top, path) found = resolv.glob(top, path)
if len(found) < 1: if len(found) < 1:
# nothing found # nothing found

@ -14,7 +14,7 @@ from catcli.logger import Logger
class Walker: class Walker:
"""a filesystem walker""" """a filesystem walker"""
MAXLINE = 80 - 15 MAXLINELEN = 80 - 15
def __init__(self, noder, usehash=True, debug=False, def __init__(self, noder, usehash=True, debug=False,
logpath=None): logpath=None):
@ -166,8 +166,8 @@ class Walker:
# clean # clean
Logger.progr(' ' * 80) Logger.progr(' ' * 80)
return return
if len(string) > self.MAXLINE: if len(string) > self.MAXLINELEN:
string = string[:self.MAXLINE] + '...' string = string[:self.MAXLINELEN] + '...'
Logger.progr(f'indexing: {string:80}') Logger.progr(f'indexing: {string:80}')
def _log2file(self, string): def _log2file(self, string):

Loading…
Cancel
Save