123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/usr/bin/env python3
- #
- # This file has been generated by conda-smithy in order to build the recipe
- # locally.
- #
- import os
- import glob
- import subprocess
- from argparse import ArgumentParser
- def setup_environment(ns):
- os.environ["CONFIG"] = ns.config
- os.environ["UPLOAD_PACKAGES"] = "False"
- def run_docker_build(ns):
- script = ".scripts/run_docker_build.sh"
- subprocess.check_call([script])
- def verify_config(ns):
- valid_configs = {
- os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml")
- }
- print(f"valid configs are {valid_configs}")
- if ns.config in valid_configs:
- print("Using " + ns.config + " configuration")
- return
- elif len(valid_configs) == 1:
- ns.config = valid_configs.pop()
- print("Found " + ns.config + " configuration")
- elif ns.config is None:
- print("config not selected, please choose from the following:\n")
- selections = list(enumerate(sorted(valid_configs), 1))
- for i, c in selections:
- print(f"{i}. {c}")
- s = input("\n> ")
- idx = int(s) - 1
- ns.config = selections[idx][1]
- print(f"selected {ns.config}")
- else:
- raise ValueError("config " + ns.config + " is not valid")
- # Remove the following, as implemented
- if not ns.config.startswith("linux"):
- raise ValueError(
- f"only Linux configs currently supported, got {ns.config}"
- )
- def main(args=None):
- p = ArgumentParser("build-locally")
- p.add_argument("config", default=None, nargs="?")
- ns = p.parse_args(args=args)
- verify_config(ns)
- setup_environment(ns)
- run_docker_build(ns)
- if __name__ == "__main__":
- main()
|