From 645d00302e88ac23fbdf6f1907efcd6e560ce76c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenz=20H=C3=BCdepohl?= <dev@stellardeath.org> Date: Fri, 20 Mar 2020 12:28:03 +0100 Subject: [PATCH] Add --dry-run option to mpcdf_enable_repositories --- mpcdf_common.py | 10 +++++++--- mpcdf_enable_repositories.py | 6 ++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/mpcdf_common.py b/mpcdf_common.py index 45210ba..9d02a6b 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -358,9 +358,8 @@ def package_sort_key(string): return (name,) + tuple(map(int, version)) -def mpcdf_enable_repositories(api_url, project, package, verbose=False, ignore_repos=()): +def mpcdf_enable_repositories(api_url, project, package, verbose=False, dry_run=False, ignore_repos=()): from itertools import product - import sys pkg_meta = osc.core.show_package_meta(api_url, project, package) root = ElementTree.fromstringlist(pkg_meta) @@ -494,7 +493,12 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, ignore_r new_pkg_meta = ElementTree.tostring(root, encoding=osc.core.ET_ENCODING) if pkg_meta != new_pkg_meta: print("Updating repositories for", package) - osc.core.edit_meta("pkg", (project, package), data=new_pkg_meta) + if dry_run: + print("osc meta pkg {0} {1} -F - <<EOF\n{2}\nEOF\n".format(project, package, new_pkg_meta)) + else: + osc.core.edit_meta("pkg", (project, package), data=new_pkg_meta) + elif dry_run: + print("Would not do anything, package meta would be unchanged") return True diff --git a/mpcdf_enable_repositories.py b/mpcdf_enable_repositories.py index 0a0ee3e..3079e93 100644 --- a/mpcdf_enable_repositories.py +++ b/mpcdf_enable_repositories.py @@ -10,6 +10,8 @@ import osc.core import osc.cmdln +@osc.cmdln.option('-n', '--dry-run', action="store_true", + help="Do not actually perform any changes but print what would be stored") @osc.cmdln.option('--recreate', action="store_true", help="Re-create the set of enabled repositories from the stored attributes on the server") @osc.cmdln.option('--compiler-modules', nargs=1, @@ -89,8 +91,8 @@ def do_mpcdf_enable_repositories(self, subcmd, opts, *args): set_or_remove(opts.pgi_modules, "MPCDF:pgi_modules") if opts.recreate or opts.set or opts.disable: - mpcdf_common.mpcdf_enable_repositories(api_url, project, package, verbose=True) - if project == "software" and opts.set != "system": + mpcdf_common.mpcdf_enable_repositories(api_url, project, package, verbose=True, dry_run=opts.dry_run) + if project == "software" and opts.set != "system" and not opts.dry_run: mpcdf_common.sync_projects(api_url, package, verbose=True) elif (opts.compiler_modules or opts.mpi_modules or opts.cuda_modules): -- GitLab