osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/29430 )
Change subject: obs: update_obs_project: check if oscrc exists ......................................................................
obs: update_obs_project: check if oscrc exists
Check if the oscrc exists, as otherwise the osc command will interactively prompt for the credentials. If running without verbose mode (the default), the command output is hidden and so it would just appear to be hanging without this patch if the config doesn't exist.
Change-Id: I6f140b2c1d171d3019fd259399e6a46da9c6451f --- M scripts/obs/README M scripts/obs/lib/osc.py M scripts/obs/update_obs_project.py 3 files changed, 14 insertions(+), 1 deletion(-)
Approvals: pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved msuraev: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/scripts/obs/README b/scripts/obs/README index 67d2a2b..cd0955d 100644 --- a/scripts/obs/README +++ b/scripts/obs/README @@ -29,7 +29,7 @@ libosmo-pfcp osmo-hnbgw
-FYI, the config file will look like this: +FYI, the config file (oscrc) will look like this:
[general] apiurl = https://obs.osmocom.org diff --git a/scripts/obs/lib/osc.py b/scripts/obs/lib/osc.py index 2fcdbc6..51e2f5f 100644 --- a/scripts/obs/lib/osc.py +++ b/scripts/obs/lib/osc.py @@ -20,6 +20,18 @@ exit(1)
+def check_oscrc(): + configdir = os.environ.get("XDG_CONFIG_HOME", "~/.config") + paths = ["~/.oscrc", f"{configdir}/osc/oscrc"] + for path in paths: + if os.path.exists(os.path.expanduser(path)): + return + + print("ERROR: oscrc does not exist, please create one as explained in the" + " README.") + exit(1) + + def set_apiurl(url): global apiurl apiurl = url diff --git a/scripts/obs/update_obs_project.py b/scripts/obs/update_obs_project.py index 02db7ce..61691f6 100755 --- a/scripts/obs/update_obs_project.py +++ b/scripts/obs/update_obs_project.py @@ -200,6 +200,7 @@ lib.docker.run_in_docker_and_exit(__file__, args, True)
lib.osc.check_proj(proj) + lib.osc.check_oscrc() lib.osc.set_apiurl(args.apiurl) lib.check_required_programs() lib.remove_temp()