def copytree()

in source/cdk_solution_helper_py/helpers_cdk/aws_solutions/cdk/helpers/copytree.py [0:0]


def copytree(src, dst, symlinks=False, ignore=None):
    if ignore:
        ignore.extend([ignored[:-2] for ignored in ignore if ignored.endswith("/*")])
    else:
        ignore = []

    if not os.path.exists(dst):
        os.makedirs(dst)

    for item in os.listdir(src):
        s = os.path.join(src, item)
        d = os.path.join(dst, item)

        # ignore full directories upfront
        if any(Path(s).match(ignored) for ignored in ignore):
            continue

        if os.path.isdir(s):
            shutil.copytree(s, d, symlinks, ignore=ignore_globs(*ignore))
        else:
            shutil.copy2(s, d)