From 732b0b5ea0f3209d2e3569f1714983632f7ef43f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenz=20H=C3=BCdepohl?= <lorenz.huedepohl@rzg.mpg.de> Date: Thu, 20 Dec 2018 18:24:34 +0100 Subject: [PATCH] Add option --only-project to mpcdf_setup_repositories --- mpcdf_common.py | 19 ++++++++++--------- mpcdf_setup_repositories.py | 4 +++- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/mpcdf_common.py b/mpcdf_common.py index 958f178..e2921d1 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -256,7 +256,7 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r return True -def mpcdf_setup_repositories(api_url, project, distribution=None, parent=None, packages=None, dry_run=False, filter_repos=None): +def mpcdf_setup_repositories(api_url, project, distribution=None, parent=None, packages=None, dry_run=False, filter_repos=None, only_project=False): if parent: for attribute in ["compiler_modules", "default_compiler", "mpi_modules", "default_mpi", "cuda_modules", "default_cuda"]: print("Copying attribute 'MPCDF:{0}' from parent project".format(attribute)) @@ -399,14 +399,15 @@ def mpcdf_setup_repositories(api_url, project, distribution=None, parent=None, p print("osc meta prj {0} -F - <<EOF\n{1}\nEOF\n".format(project, prj)) print("osc meta prjconf {0} -F - <<EOF\n{1}\nEOF\n".format(project, prjconf)) else: - # First set-up the <enable/> flags, that way no - # spurious builds are launched - if packages is None: - packages = osc.core.meta_get_packagelist(api_url, project) - for package in packages: - print("Updating repositories for", package) - if not mpcdf_enable_repositories(api_url, project, package, filter_repos=filter_repos): - print("ATTENTION: Not changing unmanaged package {0}".format(package)) + if not only_project: + # First set-up the <enable/> flags, that way no + # spurious builds are launched + if packages is None: + packages = osc.core.meta_get_packagelist(api_url, project) + for package in packages: + print("Updating repositories for", package) + if not mpcdf_enable_repositories(api_url, project, package, filter_repos=filter_repos): + print("ATTENTION: Not changing unmanaged package {0}".format(package)) # Update repositories print("Updating prj meta") diff --git a/mpcdf_setup_repositories.py b/mpcdf_setup_repositories.py index 13e6db9..5031e8a 100644 --- a/mpcdf_setup_repositories.py +++ b/mpcdf_setup_repositories.py @@ -18,6 +18,8 @@ import osc.cmdln help="Base distribution, necessary argument unless set previously for this project") @osc.cmdln.option('--disable-repo', metavar="REPO", action="append", help="Temporarily disable all repositories containing REPO") +@osc.cmdln.option('--only-project', action="store_true", default=False, + help="Only change project metadata 'prj' and 'prjconf', leave individual packages unchanged") @osc.cmdln.alias("mpcdf_setup_repos") def do_mpcdf_setup_repositories(self, subcmd, opts, *args): """${cmd_name}: Create all repository combinations for an MPCDF project @@ -43,4 +45,4 @@ def do_mpcdf_setup_repositories(self, subcmd, opts, *args): else: raise osc.oscerr.WrongArgs("Too many arguments") - mpcdf_setup_repositories(self.get_api_url(), project, opts.distribution, parent=opts.parent, dry_run=opts.dry_run, filter_repos=opts.disable_repo) + mpcdf_setup_repositories(self.get_api_url(), project, opts.distribution, parent=opts.parent, dry_run=opts.dry_run, filter_repos=opts.disable_repo, only_project=opts.only_project) -- GitLab