diff -ur v16/site_ut.py v17/site_ut.py --- v16/site_ut.py 2020-04-01 19:50:00.000000000 +0900 +++ v17/site_ut.py 2020-04-25 18:55:19.000000000 +0900 @@ -1,5 +1,6 @@ #!/usr/bin/env python +import sys import os import empty @@ -65,6 +66,8 @@ call = lambda cmd, defval='' : cmd_ut.call( cmd, defval, b2s=True ) +exists_url = lambda s: call( 'wget -q --spider ' + s, 'err' ) != 'err' + def to_num(s): if type(s) != str: return s @@ -127,17 +130,24 @@ call( cmd ) def get(url, path, scr='dl.sh'): - (dir_, name) = os.path.split( path ) + if not exists_url( '{}/{}'.format( url, path ) ): + return False - if not os.path.exists( dir_ ): + (dir_, name) = os.path.split( path ) + if dir_ and not os.path.exists( dir_ ): call( 'mkdir -p ' + dir_ ) - cmd = '( cd {} ; wget -q {}/{} )'.format( dir_, url, path ) + cmd = 'wget -q {}/{}'.format( url, path ) + if dir_: + cmd = '( cd {} ; {} )'.format( dir_ ) if call( cmd, 'err' ) != 'err': - return + return True + + if not exists_url( '{}/{}/{}'.format( url, path, scr ) ): + return False cmd = 'wget -q -O- {}/{}/{} | sh'.format( url, path, scr ) - call( cmd ) + return call( cmd, 'err' ) != 'err' if __name__ == "__main__": site = new( 'ftp_ut.yaml' ) @@ -151,7 +161,8 @@ if k == 'put': put( st.url, path, st.lmt_size ) elif k == 'get': - get( st.url, path ) + if not get( st.url, path ): + sys.exit( 1 ) else: st = site.get( k ) if st: