Skip to content

Commit

Permalink
docker: add script help message for macOS
Browse files Browse the repository at this point in the history
Problem: recently, several core developers have noted that the
docker-run-checks.sh script borks when command-line options that specify
values do so with an equals sign rather than a space on macOS.

Add a help message to show up on macOS reminding devs to strip all '='
and replace them with spaces in their command-line arguments. Also,
add an option to force the script on macOS to use GNU getopt with an
environment variable ('FORCE_GNU_GETOPT=1').
  • Loading branch information
wihobbs committed Apr 12, 2024
1 parent 91419b7 commit 38208e1
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/test/docker/docker-run-checks.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ die() { echo -e "$prog: $@"; exit 1; }
#
declare -r long_opts="help,quiet,interactive,image:,flux-security-version:,jobs:,no-cache,no-home,distcheck,tag:,build-directory:,install-only,no-poison,recheck,unit-test-only,quick-check,inception,platform:,workdir:,system"
declare -r short_opts="hqIdi:S:j:t:D:Prup:"
declare -r usage="
declare usage="
Usage: $prog [OPTIONS] -- [CONFIGURE_ARGS...]\n\
Build docker image for CI builds, then run tests inside the new\n\
container as the current user and group.\n\
Expand Down Expand Up @@ -59,9 +59,14 @@ Options:\n\
"

# check if running in OSX
if [[ "$(uname)" == "Darwin" ]]; then
if [[ "$(uname)" == "Darwin" ]] && [[ $FORCE_GNU_GETOPT != 1 ]]; then
# BSD getopt
GETOPTS=`getopt $short_opts -- $*`
export EXTRA_MACOS_STUFF="\n\
You are using BSD getopt on macOS. BSD getopt does not recognize '=' between options.\n\
Use a space instead. If gnu-getopt is first in your PATH, force the script to use\n\
that by setting FORCE_GNU_GETOPT=1.\n"
usage=${usage}${EXTRA_MACOS_STUFF}
else
# GNU getopt
GETOPTS=`getopt -u -o $short_opts -l $long_opts -n $prog -- $@`
Expand Down

0 comments on commit 38208e1

Please sign in to comment.