def mkdir(dir): script = Script() if not os.path.exists(dir): try: os.makedirs(dir) except: script.fatal('Failed to make dir', restart_after=1)
def zip(zip_file, zip_list): script = Script() if not isinstance(zip_list, list): raise Exception('zip_list must be list') if os.name == 'nt': cmd = alt.cfg.root_dir() + 'soft/7-zip/7z a -bd %s %s' % ( zip_file, ' '.join(zip_list)) else: cmd = 'zip -j %s %s' % (zip_file, ' '.join(zip_list)) alt.system.run(cmd)
def copy(src, dest, overwrite=True, makedir=True): srclist, destlist = prepare_src_dest(src, dest, overwrite=overwrite, makedir=makedir) if not srclist: return for i, srcfile in enumerate(srclist): if destlist[i] == '': continue destfile = destlist[i] print('Copying ', srcfile, destfile) try: shutil.copy2(srcfile, destfile + '~') shutil.move(destfile + '~', destfile) except: script = Script() script.fatal('Failed to copy file', restart_after=1)
def curl(url, dest=None, user=None, pwd=None): options = ' -m 3600 --speed-limit 5000 ' # if dest: if os.path.exists(dest): return options += '--output %s ' % (dest + '.tmp') else: options += '--remote-name ' if user: options += '--user %s:%s' % (user, pwd) cmd = 'curl %s "%s"' % (options, url) print(cmd) try: subprocess.check_call(cmd, shell=True) except: script = Script() script.fatal('Curl failed', restart_after=1) if dest: alt.file.move(dest + '.tmp', dest)
def prepare_src_dest(src, dest, overwrite=False, makedir=True): script = Script() if isinstance(src, (str)): if re.search(r'[*?]', src): # mask srclist = glob.glob(src) if not srclist: print('Nothing to copy/move') return (None, None) if not isinstance(dest, (str)): raise Exception('Destination is not a string') if not isdir(dest): raise Exception('Destination is not a directory', dest) else: srclist = [src] if isinstance(src, list): srclist = src if isinstance(dest, (str)): if isdir(dest): if not exists(dest) and not makedir: if proc: script.warn('Destination does not exists', dict_(dest=dest)) script.exit(restart_after=5) else: raise Exception('Destination does not exists', dest) else: mkdir(dest) destlist = [] for srcfile in srclist: destfile = dest + os.path.basename(srcfile) if os.path.exists(destfile) and not overwrite: destlist.append('') print('Destination file exists', destfile) else: destlist.append(destfile) else: if makedir: dest_dir = os.path.dirname(dest) mkdir(dest_dir) destlist = [dest] if isinstance(dest, list): destlist = dest return (srclist, destlist)
def delivery(src, dest, metadata=True): srclist, destlist = prepare_src_dest(src, dest) if not srclist: return for i, srcfile in enumerate(srclist): try: if destlist[i] == '': continue destfile = destlist[i] print('Copying ', srcfile, destfile) if metadata: shutil.copy2(srcfile, destfile + '~') else: shutil.copyfile(srcfile, destfile + '~') shutil.move(destfile + '~', destfile) except Exception: script = Script() traceback.print_exc() script.warn('Failed to copy', dict_(srcfile=srcfile, destfile=destfile)) script.exit(restart_after=5)
import sys import os import re import time from alt.dict_ import dict_ import alt.file import alt.cfg import alt.pg import alt.time from alt_proc.script import Script script = Script()