diff options
| -rwxr-xr-x | cbcbuild.py | 55 | 
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('') | 
