diff -ur v3/ftp_ut.py v4/ftp_ut.py --- v3/ftp_ut.py 2020-02-11 00:49:51.000000000 +0900 +++ v4/ftp_ut.py 2020-02-11 11:31:17.000000000 +0900 @@ -4,6 +4,7 @@ import empty import cmd_ut +import yaml_ut import dbg import arg import base @@ -114,25 +115,63 @@ return empty.new( locals() ) +def get_site(site=''): + d = {} + for fn in base.path_lst( 'ftp_ut.yaml', __file__ ): + d.update( yaml_ut.load_fn( fn, {} ) ) + + if not d: + return None + ks = list( d.keys() ) + get = lambda k: d.get(k).split() if k in ks else None + + if site: + v = get(site) + return v if v else 'not found {}'.format(site) + + if 'default' in ks: + k = d.get('default') + v = get(k) + return v if v else 'not found default {}'.format(k) + + if len(ks) == 1: + return get( ks[0] ) + + return 'select by -s ption\n{}'.format( to_str( ks, pre=' ' ) ) + def help(): msgs = [ - '[-h] [-dbg]', + '[-h] [-dbg] [-s site_name]', ' host user passwd path ..', ' host user passwd del path ..', ' host user passwd mkdir path ..', ' host user passwd rmdir path ..', ' host user passwd ls path ..', ' host user passwd lst path ..', + '', + ' site_name in ftp_ut.yaml, can ommit host user passwd' ] dbg.help_exit( to_str( msgs ) ) if __name__ == "__main__": a = arg.new() - host = a.pop() - if not host or a.is_pop('-h'): - help() - user = a.pop() - passwd = a.pop() + + site = a.pop_str('-s') + v = get_site( site ) + + (host, usr, passwd) = ('', '', '') + if v: + if type(v) == str: + dbg.err('err in .yaml, ' + v) + help() + (host, user, passwd) = v + else: + host = a.pop() + if not host or a.is_pop('-h'): + help() + user = a.pop() + passwd = a.pop() + paths = a.get_av() if not paths: help()