From 919812a851857ec66ec02d29bb25025f9c2f8205 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 20 Mar 2023 01:47:30 +0100 Subject: [PATCH] ci: Fix meson-install usage check The script has four mandatory arguments, and also accepts optional build options that are passed on to meson. Checking for the number of arguments *before* filtering out the optional ones means that `./install-meson-project.sh -Done=1 -Dtwo=2 -Dthree=3 -Dfour=4` is considered valid, even though not a single required argument is passed. Fix this by filtering out the arguments before doing the usage check. As it is a nice touch to have usage information at the top of the script, move the message into a usage() function at the top. Part-of: --- .gitlab-ci/install-meson-project.sh | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci/install-meson-project.sh b/.gitlab-ci/install-meson-project.sh index f2bacca9b..df188673c 100755 --- a/.gitlab-ci/install-meson-project.sh +++ b/.gitlab-ci/install-meson-project.sh @@ -2,12 +2,17 @@ set -e -if [[ $# -lt 4 ]]; then - echo Usage: $0 [options] [repo-url] [commit] [subdir] - echo Options: - echo -Dkey=val - exit 1 -fi +usage() { + cat <<-EOF + Usage: $(basename $0) [OPTION…] REPO_URL COMMIT SUBDIR PREPARE + + Check out and install a meson project + + Options: + -Dkey=val Option to pass on to meson + + EOF +} MESON_OPTIONS=() @@ -16,6 +21,11 @@ while [[ $1 =~ ^-D ]]; do shift done +if [[ $# -lt 4 ]]; then + usage + exit 1 +fi + REPO_URL="$1" COMMIT="$2" SUBDIR="$3"