1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-09-20 09:16:16 +02:00

Fix multibuild packages in osc rebuild

This commit is contained in:
Daniel Mach 2022-05-10 10:16:55 +02:00
parent 082986daf9
commit 6ccdb9cfe3

View File

@ -63,6 +63,11 @@ You can modify osc commands, or roll your own, via the plugin API:
osc was written by several authors. This man page is automatically generated. osc was written by several authors. This man page is automatically generated.
""" """
HELP_MULTIBUILD_MANY = """Only work with the specified flavors of a multibuild package.
Globs are resolved according to _multibuild file from server.
Empty string is resolved to a package without a flavor."""
class Osc(cmdln.Cmdln): class Osc(cmdln.Cmdln):
"""Usage: osc [GLOBALOPTS] SUBCOMMAND [OPTS] [ARGS...] """Usage: osc [GLOBALOPTS] SUBCOMMAND [OPTS] [ARGS...]
or: osc help SUBCOMMAND or: osc help SUBCOMMAND
@ -7207,8 +7212,8 @@ Please submit there instead, or use --nodevelproject to force direct submission.
help='trigger rebuilds for a specific repository') help='trigger rebuilds for a specific repository')
@cmdln.option('-f', '--failed', action='store_true', @cmdln.option('-f', '--failed', action='store_true',
help='rebuild all failed packages') help='rebuild all failed packages')
@cmdln.option('-M', '--multibuild-package', action='append', @cmdln.option('-M', '--multibuild-package', metavar="FLAVOR", action='append',
help='rebuild specified multibuild package') help=HELP_MULTIBUILD_MANY)
@cmdln.option('--all', action='store_true', @cmdln.option('--all', action='store_true',
help='Rebuild all packages of entire project') help='Rebuild all packages of entire project')
@cmdln.alias('rebuildpac') @cmdln.alias('rebuildpac')
@ -7224,7 +7229,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
of the 'osc repos' output. of the 'osc repos' output.
usage: usage:
osc rebuild [PROJECT [PACKAGE [REPOSITORY [ARCH]]]] osc rebuild [PROJECT [PACKAGE[:FLAVOR] [REPOSITORY [ARCH]]]]
${cmd_option_list} ${cmd_option_list}
""" """
@ -7265,12 +7270,11 @@ Please submit there instead, or use --nodevelproject to force direct submission.
if not (opts.all or package or repo or arch or code): if not (opts.all or package or repo or arch or code):
raise oscerr.WrongOptions('No option has been provided. If you want to rebuild all packages of the entire project, use --all option.') raise oscerr.WrongOptions('No option has been provided. If you want to rebuild all packages of the entire project, use --all option.')
packages = []
if opts.multibuild_package: if opts.multibuild_package:
for subpackage in opts.multibuild_package: resolver = MultibuildFlavorResolver(apiurl, project, package, use_local=False)
packages.append(package + ":" + subpackage) packages = resolver.resolve_as_packages(opts.multibuild_package)
else: else:
packages.append(package) packages = [package]
for package in packages: for package in packages:
print(rebuild(apiurl, project, package, repo, arch, code)) print(rebuild(apiurl, project, package, repo, arch, code))