osc-origin: support invoking update without a project.

This commit is contained in:
Jimmy Berry 2019-09-11 18:28:44 -05:00
parent 3842548b45
commit 3b6ec5848e

View File

@ -19,6 +19,7 @@ from osclib.origin import origin_find
from osclib.origin import origin_history from osclib.origin import origin_history
from osclib.origin import origin_potentials from osclib.origin import origin_potentials
from osclib.origin import origin_revision_state from osclib.origin import origin_revision_state
from osclib.origin import origin_updatable
from osclib.origin import origin_update from osclib.origin import origin_update
from osclib.sentry import sentry_init from osclib.sentry import sentry_init
from osclib.util import mail_send from osclib.util import mail_send
@ -82,7 +83,7 @@ def do_origin(self, subcmd, opts, *args):
Cache.init() Cache.init()
apiurl = self.get_api_url() apiurl = self.get_api_url()
if command not in ['cron', 'projects']: if command not in ['cron', 'projects', 'update']:
if not opts.project: if not opts.project:
raise oscerr.WrongArgs('A project must be indicated.') raise oscerr.WrongArgs('A project must be indicated.')
config = config_load(apiurl, opts.project) config = config_load(apiurl, opts.project)
@ -343,17 +344,19 @@ def osrt_origin_report(apiurl, opts, *args):
body, None, dry=opts.dry) body, None, dry=opts.dry)
def osrt_origin_update(apiurl, opts, *packages): def osrt_origin_update(apiurl, opts, *packages):
if not opts.project:
for project in origin_updatable(apiurl):
opts.project = project
osrt_origin_update(apiurl, opts, *packages)
return
if len(packages) == 0: if len(packages) == 0:
packages = package_list_kind_filtered(apiurl, opts.project) packages = package_list_kind_filtered(apiurl, opts.project)
return_value = 0
for package in packages: for package in packages:
print('checking for updates to {}...'.format(package)) print('checking for updates to {}/{}...'.format(opts.project, package))
request_future = origin_update(apiurl, opts.project, package) request_future = origin_update(apiurl, opts.project, package)
if request_future: if request_future:
if request_future.print_and_create(opts.dry) is False: request_future.print_and_create(opts.dry)
return_value = 1
if return_value != 0:
sys.exit(return_value)