import os from pathlib import Path def setup_project(target, source, env): dir = str(source[0])[:-9] home = os.getcwd() env.Execute("cd {} && python3 setup.py bdist && cd {}".format(dir, home)) builder = Builder(action = setup_project) env = Environment(BUILDERS = {'Setup' : builder}) projects = list(proj for (proj, subdirs, files) in os.walk(Path()) if "setup.py" in files) output = [] for path in projects: name = path.split('/')[-1] output.append("{}/dist/{}".format(path.replace('.', os.getcwd()), name + "-4.0.0a1.dev1.macosx-10.15-x86_64.tar.gz")) for src, out in zip(projects, output): env.Setup(source=src + "/setup.py", target=out)