From: Nathan Cutler Date: Tue, 6 Apr 2021 11:04:04 +0000 (+0200) Subject: make-dist: refuse to run if script path contains a colon X-Git-Tag: v17.1.0~2259^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cb520aa914415bea027b8dd7f4591ae5721ffec4;p=ceph.git make-dist: refuse to run if script path contains a colon Colons are not permissible in POSIX paths and their presence is known to break the script. Fixes: https://tracker.ceph.com/issues/39556 Signed-off-by: Nathan Cutler --- diff --git a/make-dist b/make-dist index 043f3271b56..24475d2dac3 100755 --- a/make-dist +++ b/make-dist @@ -1,7 +1,21 @@ #!/bin/bash -e +SCRIPTNAME="$(basename "${0}")" +BASEDIR="$(readlink -f "$(dirname "${0}")")" + if [ ! -d .git ]; then - echo "no .git present. run this from the base dir of the git checkout." + echo "$SCRIPTNAME: Full path to the script: $BASEDIR/$SCRIPTNAME" + echo "$SCRIPTNAME: No .git present. Run this from the base dir of the git checkout." + exit 1 +fi + +# Running the script from a directory containing a colon anywhere in the path +# will expose us to the dreaded "[BUG] npm run [command] failed if the directory +# path contains colon" bug https://github.com/npm/cli/issues/633 +# (see https://tracker.ceph.com/issues/39556 for details) +if [[ "$BASEDIR" == *:* ]] ; then + echo "$SCRIPTNAME: Full path to the script: $BASEDIR/$SCRIPTNAME" + echo "$SCRIPTNAME: The path to the script contains a colon. Their presence has been known to break the script." exit 1 fi