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