Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
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()