From 16a6d3d6c9495d3a67d74835f1d25329418ba832 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Thu, 16 Jul 2015 21:07:42 -0400 Subject: Add arguments: --no-upload, --use-local --- cbcbuild.py | 55 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/cbcbuild.py b/cbcbuild.py index 5b02647..2217a4e 100755 --- a/cbcbuild.py +++ b/cbcbuild.py @@ -11,24 +11,33 @@ import conda_build.metadata #sys.argv.append('tests/data/aprio.ini') if __name__ == '__main__': + no_upload = '' + use_local = '' + parser = argparse.ArgumentParser() - parser.add_argument('--force-rebuild', - action='store_true', + parser.add_argument('--force-rebuild', + action='store_true', help='Do not stop if package already installed') - parser.add_argument('--no-build', + parser.add_argument('--no-build', action='store_true', help='Generate metadata from cbc configuration (useful for manual building)') + parser.add_argument('--no-upload', + action='store_true', + help='Do not upload to anaconda.org (aka. binstar)') + parser.add_argument('--use-local', + action='store_true', + help='Install built package from [...]/conda-bld/pkgs repository') parser.add_argument('cbcfile', - nargs='+', + nargs='+', help='CBC metadata') args = parser.parse_args() - - # Initialize internal environment + + # Initialize cbc internal environment env = cbc.environment.Environment() - + # Convert cbcfile paths to absolute paths args.cbcfile = [ os.path.abspath(x) for x in args.cbcfile ] - + # Verify we have a file that exists for cbcfile in args.cbcfile: if not os.path.exists(cbcfile): @@ -37,33 +46,39 @@ if __name__ == '__main__': elif not os.path.isfile(cbcfile): print('{} is not a file.'.format(cbcfile)) exit(1) - + + if args.no_upload: + no_upload = '--no-binstar-upload' + + if args.use_local: + use_local = '--use-local' + print('CBC_HOME is {0}'.format(env.cbchome)) # Perform build(s) for cbcfile in args.cbcfile: print('Using cbc build configuration: {0}'.format(cbcfile)) # Ensure the working directory remains the same throughout. os.chdir(env.pwd) - + metadata = cbc.meta.MetaData(cbcfile, env) metadata.env.mkpkgdir(metadata.local['package']['name']) metadata.render_scripts() metadata.copy_patches() print('Scripts written to {0}'.format(metadata.env.pkgdir)) - + if args.no_build: continue - + print('Generating Conda metadata...') conda_metadata = conda_build.metadata.MetaData(env.pkgdir) - + if not args.force_rebuild: - if cbc.utils.conda_search(conda_metadata.name()) == conda_metadata.dist(): - print('{0} metadata matches an installed package; increment the build number to rebuild or use --force-rebuild.'.format(conda_metadata.dist())) + if cbc.utils.conda_search(conda_metadata) == conda_metadata.dist(): + print('{0} matches an installed package; increment the build number to rebuild or use --force-rebuild.'.format(conda_metadata.dist())) continue - - conda_builder_args = {'get_src': True, 'verbose': False} + + conda_builder_args = [no_upload, use_local] try: print('Initializing Conda build...') built = cbc.utils.conda_builder(metadata, conda_builder_args) @@ -73,14 +88,14 @@ if __name__ == '__main__': except cbc.exceptions.CondaBuildError as cbe: print(cbe) continue - + print('Installing Conda package...') - package_exists = cbc.utils.conda_search(conda_metadata.name()) + package_exists = cbc.utils.conda_search(conda_metadata) if not package_exists: cbc.utils.conda_install(conda_metadata.name()) elif package_exists: if args.force_rebuild: cbc.utils.conda_reinstall(conda_metadata.name()) - + print('') -- cgit