diff -ur v4/ftp_ut.py v5/ftp_ut.py --- v4/ftp_ut.py 2020-02-11 11:31:17.000000000 +0900 +++ v5/ftp_ut.py 2020-02-12 00:06:13.000000000 +0900 @@ -117,13 +117,25 @@ def get_site(site=''): d = {} - for fn in base.path_lst( 'ftp_ut.yaml', __file__ ): + for fn in reversed( 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 + def get_s(k): + if k not in ks: + return None + s = d.get(k) + if ' ' in s: + return s + lst = s.split('/') + return get_s( lst[0] ) + ' ' + to_str( lst[1:], delim='/' ) + + def get(k): + s = get_s(k) + lst = s.split() + return lst[:3] + [ to_str( lst[3:], delim='/' ) ] if site: v = get(site) @@ -141,7 +153,7 @@ def help(): msgs = [ - '[-h] [-dbg] [-s site_name]', + '[-h] [-dbg] [-s site_name] [-C dir]', ' host user passwd path ..', ' host user passwd del path ..', ' host user passwd mkdir path ..', @@ -159,12 +171,12 @@ site = a.pop_str('-s') v = get_site( site ) - (host, usr, passwd) = ('', '', '') + (host, usr, passwd, cd) = ('', '', '', '') if v: if type(v) == str: dbg.err('err in .yaml, ' + v) help() - (host, user, passwd) = v + (host, user, passwd, cd) = v else: host = a.pop() if not host or a.is_pop('-h'): @@ -172,6 +184,9 @@ user = a.pop() passwd = a.pop() + if not cd: + cd = a.pop_str('-C') + paths = a.get_av() if not paths: help() @@ -186,6 +201,11 @@ if not quiet: dbg.out('login') + if cd: + (s, r) = ftp.cd( cd, lcd=False ) + if not quiet: + dbg.out( s, '' ) + sr = ('', '') if p0 == 'del': sr = ftp.do_paths( ftp.del_, p1_ )