from gbp.scripts.import_srpm import main as gbp_import_srpm
from gbp.scripts.import_orig_rpm import main as gbp_import_orig
-def main(args):
- """gbs import entry point."""
-
- if args.author_name:
- os.environ["GIT_AUTHOR_NAME"] = args.author_name
- if args.author_email:
- os.environ["GIT_AUTHOR_EMAIL"] = args.author_email
-
- path = args.path
-
+def import_package(path, args):
tmp = Temp(prefix='gbp_',
dirn=configmgr.get('tmpdir', 'general'),
directory=True)
if gbp_import_orig(params):
raise GbsError('Failed to import %s' % path)
+def import_package_list(package_list, args):
+ import_err = False
+ for path in package_list:
+ try:
+ import_package(path, args)
+ except GbsError as err:
+ log.error(err)
+ import_err = True
+ pass
+
+ if import_err:
+ raise GbsError('Failed to import some packages')
+
+def main(args):
+ """gbs import entry point."""
+
+ if args.author_name:
+ os.environ["GIT_AUTHOR_NAME"] = args.author_name
+ if args.author_email:
+ os.environ["GIT_AUTHOR_EMAIL"] = args.author_email
+
+ pkg_specified = False
+ if args.path:
+ import_package(args.path, args)
+ pkg_specified = True
+ if args.source_package_list:
+ import_package_list(args.source_package_list.split(','), args)
+ pkg_specified = True
+ if args.source_package_from_file:
+ if not os.path.exists(args.source_package_from_file):
+ raise GbsError('specified package list file %s not exists' % \
+ args.source_package_from_file)
+ with open(args.source_package_from_file) as fobj:
+ package_list = [pkg.strip() for pkg in fobj.readlines() if pkg.strip()]
+ import_package_list(package_list, args)
+ pkg_specified = True
+
+ if not pkg_specified:
+ raise GbsError('No package is imported, please specify package path.')
+
log.info('done.')
$ gbs import /path/to/tarball.tar.gz
"""
- parser.add_argument('path', type=os.path.abspath,
+ parser.add_argument('path', nargs='?', type=os.path.abspath,
help='path to spec, srcrpm or tarball')
parser.add_argument('--author-name', help='author name of git commit')
'packages)')
group.add_argument('--no-patch-import', action='store_true',
help='don\'t import patches automatically')
+ group.add_argument('--source-package-list',
+ help='specify a source package list to be imported. '
+ 'Multiple packages can be separated by comma(,).')
+ group.add_argument('--source-package-from-file',
+ help='specify a source package list file. Packages '
+ 'listed in this file will be selected to be imported. '
+ 'The format of file is one package dir for one line')
group = parser.add_argument_group('only for importing upstream tar ball '
'options')
group.add_argument('--merge', action='store_true',