From a36c355462fa1e987ac7dc338da5b839158171bb Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Fri, 22 May 2020 11:00:01 +0200 Subject: [PATCH] OBS: check required programs before start osmocom-*-packages.sh take some time to execute and has quite a few programs that are not commonly installed. Check the required dependencies first, so it doesn't abort in the middle of the scripts if these are missing. I just ran into this with the new meson dependency. Change-Id: I46cf1aeedd61dbd4fc8fa3f24c60e29033339ead --- scripts/common-obs.sh | 13 +++++++++++++ scripts/common.sh | 15 +++++++++++++++ scripts/osmocom-latest-packages.sh | 5 ----- scripts/osmocom-nightly-packages.sh | 5 ----- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 5e21574c..c07fbaa8 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -1,6 +1,19 @@ #!/bin/sh # Various common code used in the OBS (opensuse build service) related osmo-ci shell scripts +osmo_cmd_require \ + dch \ + dh \ + dpkg-buildpackage \ + gbp \ + git \ + meson \ + mktemp \ + osc \ + patch \ + sed \ + wget + # Create the source for a dummy package, that conflicts with another dummy package in the current directory. Example # of the structure that will be generated: # osmocom-nightly diff --git a/scripts/common.sh b/scripts/common.sh index af7c3544..917962eb 100644 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -157,3 +157,18 @@ docker_images_require() { cd "$oldpwd" return $ret } + +# Abort the script if required programs are missing +# $1...$n: program name +osmo_cmd_require() { + local fail=0 + for i in "$@"; do + if ! command -v "$i" >/dev/null 2>&1; then + echo "Required program not found: $i" + fail=1 + fi + done + if [ "$fail" = 1 ]; then + exit 1 + fi +} diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 88c5094e..ddf53592 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -15,11 +15,6 @@ DT=$(date +%Y%m%d) TOP=$(pwd) DEBSRCDIR="$TOP/debsrc" -if ! which osc >/dev/null 2>/dev/null ; then - echo "osc binary not found" - exit 1 -fi - ### OBS build prepare() { # start with a checkout of the project diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index b3f04613..8f363775 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -14,11 +14,6 @@ PROJ=network:osmocom:nightly DT=$(date +%Y%m%d) TOP=$(pwd)/$(mktemp -d nightly-3g_XXXXXX) -if ! which osc >/dev/null 2>/dev/null ; then - echo "osc binary not found" - exit 1 -fi - ### OBS build prepare() { # clean up the whole space