summaryrefslogtreecommitdiff
path: root/evergreen/prelude_workdir.sh
diff options
context:
space:
mode:
authorRichard Samuels <richard.l.samuels@gmail.com>2021-05-18 16:19:17 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-05-27 18:26:29 +0000
commit6135750dab50a54e40929913fa043d33f2d6f26e (patch)
treeb6ee72b6b72ed152d2c35b71517ef524d7ff301d /evergreen/prelude_workdir.sh
parentd7c69eb4c0453f77047fcc95ed4ab76a6580718c (diff)
downloadmongo-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.sh26
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