File py_build of Package obs-service-py_build
#!/usr/bin/python3
from build.__main__ import main
import argparse
import sys
from pathlib import Path
from os import getcwd
import glob
parser_generate = argparse.ArgumentParser(description='generate RPM spec or DEB dsc file from a package')
parser_generate.add_argument('--source', help='source directory (defaults to current directory)', default=getcwd())
parser_generate.add_argument('--outdir', help='source directory (defaults to current directory)', default=getcwd())
parser_generate.add_argument('--version', help='package version (optional)', default='disable', choices=['enable', 'disable'])
parser_generate.add_argument('--noop', default='disable', choices=['enable', 'disable'], help='do nothing')
parser_generate.add_argument('--sdist', default='enable', choices=['enable', 'disable'], help='build a source distribution (disables the default behavior)')
parser_generate.add_argument('--wheel', default='enable', choices=['enable', 'disable'], help='build a wheel (disables the default behavior)')
parser_generate.add_argument('--no-isolation', default='enable', choices=['enable', 'disable'], help='Build the project in an isolated virtual environment')
parser_generate.add_argument('--config-setting', action='append', help='KEY[=VALUE] - settings to pass to the backend. Multiple settings can be provided. Settings beginning with a hyphen will erroneously be interpreted as options to build if separated by a space character; use ``--config-setting=--my-setting -C--my-other-setting``')
args = parser_generate.parse_args(sys.argv[1:])
if (args.noop == 'enable') or (args.wheel == args.sdist == 'disable'):
exit(0)
outdir = str(Path(args.outdir or '.').resolve())
try:
source = glob.glob(args.source)[0]
except Exception:
raise FileNotFoundError(args.source)
arg_list = [ '--' + i.replace('_','-') for i in ['sdist', 'wheel', 'no_isolation', 'version'] if getattr(args, i) == 'enable' ] + [ '--config-setting='+i for i in (args.config_setting or []) ] + [ '--outdir', outdir, source ]
try:
main(arg_list, __file__)
except NameError:
main(arg_list, '@commandline')