diff options
author | Richard Samuels <richard.l.samuels@gmail.com> | 2021-05-18 16:19:17 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-05-27 18:26:29 +0000 |
commit | 6135750dab50a54e40929913fa043d33f2d6f26e (patch) | |
tree | b6ee72b6b72ed152d2c35b71517ef524d7ff301d /evergreen/prelude_workdir.sh | |
parent | d7c69eb4c0453f77047fcc95ed4ab76a6580718c (diff) | |
download | mongo-6135750dab50a54e40929913fa043d33f2d6f26e.tar.gz |
SERVER-57047 Remove requirement to specify workdir when subprocess.exec'ing shell scripts
Diffstat (limited to 'evergreen/prelude_workdir.sh')
-rw-r--r-- | evergreen/prelude_workdir.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/evergreen/prelude_workdir.sh b/evergreen/prelude_workdir.sh new file mode 100644 index 00000000000..2e39ba1f3b8 --- /dev/null +++ b/evergreen/prelude_workdir.sh @@ -0,0 +1,26 @@ +calculated_workdir=$(cd "$evergreen_dir/../.." && echo "$PWD") +pwd_cygpath="$PWD" +if [ "Windows_NT" = "$OS" ]; then + calculated_workdir=$(cygpath -w "$calculated_workdir") + pwd_cygpath=$(cygpath -w "$pwd_cygpath") +fi +if [ -z "$workdir" ]; then + workdir="$calculated_workdir" + +# skip this test on Windows. The directories will never match due to the many +# different path types present on Windows+Cygwin +elif [ "$workdir" != "$calculated_workdir" ] && [ "Windows_NT" != "$OS" ]; then + # if you move the checkout directory (ex: simple project config project), + # then this assertion will fail in the future. You need to update + # calculated_workdir, and all the relative directories in this file. + echo "\$workdir was specified, but didn't match \$calculated_workdir. Did the directory structure change? Update prelude.sh" + echo "\$workdir: $workdir" + echo "\$calculated_workdir: $calculated_workdir" + exit 1 +fi +if [ "$pwd_cygpath" != "$calculated_workdir" ]; then + echo "ERROR: Your script changed directory before loading prelude.sh. Don't do that" + echo "\$PWD: $PWD" + echo "\$calculated_workdir: $calculated_workdir" + exit 1 +fi |