From 373d93e4505d3613c24fddba23672492640d793d Mon Sep 17 00:00:00 2001 From: Ryan Volz Date: Fri, 21 May 2021 17:07:51 -0400 Subject: [PATCH] Add '--' separator to explicitly pass extra arguments to build commands. --- .github/workflows/build_radioconda.yml | 2 +- build_installer.py | 11 +++++++++-- build_metapackage.py | 11 +++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_radioconda.yml b/.github/workflows/build_radioconda.yml index a0ca057..c094359 100644 --- a/.github/workflows/build_radioconda.yml +++ b/.github/workflows/build_radioconda.yml @@ -69,7 +69,7 @@ jobs: if [ "$OS_NAME" == "Windows" ]; then PATH=$CONDA_PREFIX/NSIS:$PATH fi - python build_installer.py -v --conda-exe $MAMBA_EXE + python build_installer.py -- -v --conda-exe $MAMBA_EXE - name: Build metapackage shell: bash -l {0} diff --git a/build_installer.py b/build_installer.py index 869b0dd..ec44993 100755 --- a/build_installer.py +++ b/build_installer.py @@ -34,7 +34,8 @@ if __name__ == "__main__": parser = argparse.ArgumentParser( description=( "Build installer package(s) using conda constructor." - " Additional command-line options will be passed to constructor." + " Additional command-line options following '--' will be passed to" + " constructor." ) ) parser.add_argument( @@ -59,7 +60,13 @@ if __name__ == "__main__": ), ) - args, constructor_args = parser.parse_known_args() + # allow a delimiter to separate constructor arguments + argv = sys.argv[1:] + if "--" in argv: + i = argv.index("--") + args, constructor_args = parser.parse_args(argv[:i]), argv[i + 1 :] + else: + args, constructor_args = parser.parse_args(argv), [] platform = spec_dir_extract_platform(args.installer_spec_dir) diff --git a/build_metapackage.py b/build_metapackage.py index c281bb9..5aee7c0 100755 --- a/build_metapackage.py +++ b/build_metapackage.py @@ -73,7 +73,8 @@ if __name__ == "__main__": parser = argparse.ArgumentParser( description=( "Build environment metapackage using conda-build." - " Additional command-line options will be passed to conda metapackage." + " Additional command-line options following '--' will be passed to conda" + " metapackage." ) ) parser.add_argument( @@ -113,7 +114,13 @@ if __name__ == "__main__": help="Summary of the package. (default: %(default)s)", ) - args, metapackage_args = parser.parse_known_args() + # allow a delimiter to separate metapackage arguments + argv = sys.argv[1:] + if "--" in argv: + i = argv.index("--") + args, metapackage_args = parser.parse_args(argv[:i]), argv[i + 1 :] + else: + args, metapackage_args = parser.parse_args(argv), [] env_dict = read_env_file( args.env_file,