summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2020-05-22 11:00:01 +0200
committerOliver Smith <osmith@sysmocom.de>2020-05-22 11:36:53 +0200
commita36c355462fa1e987ac7dc338da5b839158171bb (patch)
tree7f808da3f1eb6299fdd23d6cb5cfca41d3917be0
parent4969d2b1163bbecd6ad43e4a1497ed33dc3adafb (diff)
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
-rw-r--r--scripts/common-obs.sh13
-rw-r--r--scripts/common.sh15
-rwxr-xr-xscripts/osmocom-latest-packages.sh5
-rwxr-xr-xscripts/osmocom-nightly-packages.sh5
4 files changed, 28 insertions, 10 deletions
diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh
index 5e21574..c07fbaa 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 af7c354..917962e 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 88c5094..ddf5359 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 b3f0461..8f36377 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