예제 #1
0
def apply_patches(patch_files, working_dir):
    apply_files = expand_patches(patch_files)
    if not len(apply_files):
        return
    if not sh.isdir(working_dir):
        LOG.warn("Can only apply %s patches 'inside' a directory and not '%s'", len(apply_files), working_dir)
        return
    with utils.chdir(working_dir):
        for p in apply_files:
            LOG.debug("Applying patch %s in directory %s", p, working_dir)
            patch_contents = sh.load_file(p)
            if len(patch_contents):
                sh.execute(*PATCH_CMD, process_input=patch_contents)
예제 #2
0
def apply_patches(patch_files, working_dir):
    apply_files = expand_patches(patch_files)
    if not len(apply_files):
        return
    if not sh.isdir(working_dir):
        LOG.warn("Can only apply %s patches 'inside' a directory and not '%s'",
                 len(apply_files), working_dir)
        return
    with utils.chdir(working_dir):
        for p in apply_files:
            LOG.debug("Applying patch %s in directory %s", p, working_dir)
            patch_contents = sh.load_file(p)
            if len(patch_contents):
                sh.execute(PATCH_CMD, process_input=patch_contents)
예제 #3
0
파일: patcher.py 프로젝트: jzako/anvil
def apply_patches(patch_files, working_dir):
    if not sh.isdir(working_dir):
        LOG.warn("Can only apply patches 'inside' a directory and not '%s'",
                 working_dir)
        return
    already_applied = set()
    for patch_ext, patch_cmd in [('.patch', PATCH_CMD), ('.git_patch', GIT_PATCH_CMD)]:
        apply_files = expand_patches(patch_files, patch_ext=patch_ext)
        apply_files = [p for p in apply_files if p not in already_applied]
        if not apply_files:
            continue
        with utils.chdir(working_dir):
            for p in apply_files:
                LOG.debug("Applying patch %s using command %s in directory %s",
                          p, patch_cmd, working_dir)
                patch_contents = sh.load_file(p)
                if len(patch_contents):
                    sh.execute(patch_cmd, process_input=patch_contents)
                already_applied.add(p)
예제 #4
0
def apply_patches(patch_files, working_dir):
    if not sh.isdir(working_dir):
        LOG.warn("Can only apply patches 'inside' a directory and not '%s'",
                 working_dir)
        return
    already_applied = set()
    for patch_ext, patch_cmd in [('.patch', PATCH_CMD),
                                 ('.git_patch', GIT_PATCH_CMD)]:
        apply_files = expand_patches(patch_files, patch_ext=patch_ext)
        apply_files = [p for p in apply_files if p not in already_applied]
        if not apply_files:
            continue
        with utils.chdir(working_dir):
            for p in apply_files:
                LOG.debug("Applying patch %s using command %s in directory %s",
                          p, patch_cmd, working_dir)
                patch_contents = sh.load_file(p)
                if len(patch_contents):
                    sh.execute(patch_cmd, process_input=patch_contents)
                already_applied.add(p)
예제 #5
0
def apply_patches(patch_files, working_dir):
    if not patch_files:
        return
    apply_files = []
    for p in patch_files:
        p = sh.abspth(p)
        if not sh.isfile(p):
            LOG.warn("Can not apply non-file patch %s", p)
        apply_files.append(p)
    if not apply_files:
        return
    if not sh.isdir(working_dir):
        LOG.warn("Can only apply %s patches 'inside' a directory and not '%s'",
                 len(apply_files), working_dir)
        return
    with utils.chdir(working_dir):
        for p in apply_files:
            LOG.debug("Applying patch %s in directory %s", p, working_dir)
            patch_contents = sh.load_file(p)
            if patch_contents:
                sh.execute(*PATCH_CMD, process_input=patch_contents)