From e43e08ab20c541459f176b17b51cf4d29873c3ef Mon Sep 17 00:00:00 2001 From: Otto Urpelainen Date: Jan 18 2022 19:41:09 +0000 Subject: Fix if conditions in build.sh Earlier comment removed quotation from around command substitions $(). This is not a good idea, because if the substitution produces whitespace, without the quotes, the result is not interpreted as a single string. Pattern 'if [ $(uname) == "foo" ]' is replaced with 'uname | grep -iwq foo' here. Apart from following good shell scripting practices, this commit fixes the problem where the script failed if the current working directory's patch contained whitespace. --- diff --git a/build.sh b/build.sh index 75dd387..002d86a 100755 --- a/build.sh +++ b/build.sh @@ -3,16 +3,16 @@ image="docker.io/antora/antora" cmd="--html-url-extension-style=indexify site.yml" -if [ "$(uname)" == "Darwin" ]; then +if uname | grep -iwq darwin; then # Running on macOS. # Let's assume that the user has the Docker CE installed # which doesn't require a root password. echo "" echo "This build script is using Docker container runtime to run the build in an isolated environment." echo "" - docker run --rm -it -v $(pwd):/antora $image $cmd + docker run --rm -it -v "$(pwd):/antora" $image $cmd -elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then +elif uname | grep -iq linux; then # Running on Linux. # there isn't an antora/aarch64 container, antora can be installed locally # Check whether podman is available, else faill back to docker @@ -20,13 +20,13 @@ elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then if [ -f /usr/local/bin/antora ]; then /usr/local/bin/antora $cmd - elif [[ `uname -m` == "aarch64" ]]; then + elif uname -m | grep -iwq aarch64; then echo "no antora/aarch64 container try just \`npm install -g @antora/cli @antora/site-generator-default\`" elif [ -f /usr/bin/podman ]; then echo "" echo "This build script is using Podman to run the build in an isolated environment." echo "" - podman run --rm -it -v $(pwd):/antora:z $image $cmd + podman run --rm -it -v "$(pwd):/antora:z" $image $cmd elif [ -f /usr/bin/docker ]; then echo "" @@ -40,7 +40,7 @@ elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then echo "This build script is using $runtime to run the build in an isolated environment. You might be asked for your password." echo "You can avoid this by adding your user to the 'docker' group, but be aware of the security implications. See https://docs.docker.com/install/linux/linux-postinstall/." echo "" - sudo docker run --rm -it -v $(pwd):/antora:z $image $cmd + sudo docker run --rm -it -v "$(pwd):/antora:z" $image $cmd fi else echo ""