def main(argv=None): """Main function""" ret = 0 try: args = parse_args(argv) args.outdir = os.path.abspath(args.outdir) if args.verbose == 'yes': gbplog.setup(color='auto', verbose=True) LOGGER.setLevel(gbplog.DEBUG) gbp_repocache.LOGGER.setLevel(gbplog.DEBUG) gbs_log.setup(verbose=True) else: gbplog.setup(color='auto', verbose=False) gbs_log.setup(verbose=False) LOGGER.info('Starting GBS source service') config = read_config(args.config) # Create / update cached repository repo = CachedRepo(config['repo-cache-dir'], args.url) args.revision = repo.update_working_copy(args.revision, submodules=False) # Create outdir try: os.makedirs(args.outdir) except OSError as err: if err.errno != os.errno.EEXIST: raise ServiceError('Failed to create outdir: %s' % err, 1) os.chdir(repo.repodir) LOGGER.info('args.spec %s' % args.spec) if args.spec is None: spec_name=os.path.basename(args.url) if spec_name.endswith(".git"): spec_name=spec_name[:-4] args.spec = findBestSpecFile('./packaging', spec_name) else: args.spec = findBestSpecFile('./packaging', args.spec) if args.spec is None: LOGGER.error('no spec file available in packaging' ' directory') return 2 read_localconf(".") # Export sources with GBS gbs_export(repo, args) except ServiceError as err: LOGGER.error(err[0]) ret = err[1] except CachedRepoError as err: LOGGER.error('RepoCache: %s' % err) ret = 1 return ret
def main(argv=None): """Main function""" args = parse_args(argv) LOGGER.info('Starting git-buildpackage source service') if args.verbose == 'yes': gbplog.setup(color='auto', verbose=True) LOGGER.setLevel(gbplog.DEBUG) gbp_repocache.LOGGER.setLevel(gbplog.DEBUG) config = read_config(args.config) # Create / update cached repository try: repo = CachedRepo(config['repo-cache-dir'], args.url) args.revision = repo.update_working_copy(args.revision) except CachedRepoError as err: LOGGER.error('RepoCache: %s' % str(err)) return 1 # Export sources with GBP rpm_args, deb_args = construct_gbp_args(args) orig_dir = os.path.abspath(os.curdir) try: os.chdir(repo.repodir) if args.rpm in ['yes','auto']: if args.spec is None: specs_path = get_spec('.') else: specs_path = get_spec('.', name=args.spec) if specs_path is None: LOGGER.error('no spec file available in packaging' ' directory') return 2 rpm_args.append('--git-spec-file=%s' % specs_path) LOGGER.info('Exporting RPM packaging files with GBP') LOGGER.debug('git-buildpackage-rpm args: %s' % ' '.join(rpm_args)) ret = gbp_rpm(rpm_args) if ret: LOGGER.error('Git-buildpackage-rpm failed, unable to export ' 'RPM packaging files') return 2 if args.deb == 'yes' or (args.deb== 'auto' and os.path.isdir('debian')): LOGGER.info('Exporting Debian source package with GBP') LOGGER.debug('git-buildpackage args: %s' % ' '.join(deb_args)) ret = gbp_deb(deb_args) if ret: LOGGER.error('Git-buildpackage failed, unable to export Debian ' 'sources package files') return 3 finally: os.chdir(orig_dir) return 0
def main(argv=None): """Main function""" args = parse_args(argv) logging.basicConfig(level=logging.INFO, format='%(name)s:%(levelname)s: %(message)s') LOGGER.info('Starting git-buildpackage source service') if args.verbose == 'yes': gbplog.setup(color='auto', verbose=True) logging.root.setLevel(logging.DEBUG) config = read_config(args.config) # Create / update cached repository refs_hack = str_to_bool(config['repo-cache-refs-hack']) try: repo = CachedRepo(config['repo-cache-dir'], args.url, refs_hack=refs_hack) args.revision = repo.update_working_copy(args.revision) except CachedRepoError as err: LOGGER.error('RepoCache: %s', str(err)) return 1 # Run GBP try: gbp_export(repo, args, config) # Write git meta file if args.git_meta: write_treeish_meta(repo.repo, args.revision, args.outdir, args.git_meta) except ExportError as err: LOGGER.error(err[0]) ret = err[1] except GbpServiceError as err: LOGGER.error(err) ret = EXIT_ERR_SERVICE else: ret = EXIT_OK return ret
def main(argv=None): """Main function""" ret = EXIT_OK args = parse_args(argv) args.outdir = os.path.abspath(args.outdir) if args.verbose == 'yes': gbplog.setup(color='auto', verbose=True) LOGGER.setLevel(gbplog.DEBUG) gbp_repocache.LOGGER.setLevel(gbplog.DEBUG) gbs_log.setup(verbose=True) else: gbplog.setup(color='auto', verbose=False) gbs_log.setup(verbose=False) # Add a new handler writing to a tempfile into the root logger file_log = tempfile.NamedTemporaryFile(prefix='gbs-service_') file_handler = gbplog.GbpStreamHandler(file_log) gbplog.getLogger().addHandler(file_handler) LOGGER.info('Starting GBS source service') # Create outdir try: os.makedirs(args.outdir) except OSError as err: if err.errno != os.errno.EEXIST: LOGGER.error('Failed to create outdir: %s', err) return EXIT_ERR_SERVICE try: config = read_config(args.config) # Create / update cached repository refs_hack = str_to_bool(config['repo-cache-refs-hack']) try: repo = CachedRepo(config['repo-cache-dir'], args.url, refs_hack=refs_hack) args.revision = repo.update_working_copy(args.revision, submodules=False) except CachedRepoError as err: raise ServiceError('RepoCache: %s' % err, EXIT_ERR_SERVICE) # Export sources with GBS gbs_export(repo, args, config) # Write git-meta if args.git_meta: try: write_treeish_meta(repo.repo, args.revision, args.outdir, args.git_meta) except GbpServiceError as err: raise ServiceError(str(err), EXIT_ERR_SERVICE) except ServiceError as err: LOGGER.error(err[0]) if err[1] in args.error_pkg: file_handler.flush() error_fn = os.path.join(args.outdir, 'service-error') shutil.copy2(file_log.name, error_fn) with open(error_fn + '.spec', 'w') as error_spec: error_spec.write(ERROR_PKG_SPEC) ret = EXIT_OK else: ret = err[1] finally: gbplog.getLogger().removeHandler(file_handler) file_log.close() return ret