aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcbcbuild.py55
1 files 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('')