From 007ad9802e7f4c96ddb26681387d53678e068878 Mon Sep 17 00:00:00 2001 From: Michael Ernst Date: Thu, 5 Jun 2025 14:33:37 -0700 Subject: [PATCH] Better way to determine script directory --- .travis-build.sh | 30 +++++++++---------- checker/bin-devel/build.sh | 4 +-- checker/bin-devel/test-cftests-all.sh | 4 +-- .../bin-devel/test-cftests-inference-part1.sh | 4 +-- .../bin-devel/test-cftests-inference-part2.sh | 4 +-- checker/bin-devel/test-cftests-inference.sh | 4 +-- checker/bin-devel/test-cftests-junit.sh | 4 +-- checker/bin-devel/test-cftests-nonjunit.sh | 4 +-- checker/bin-devel/test-daikon-part1.sh | 6 ++-- checker/bin-devel/test-daikon-part2.sh | 6 ++-- checker/bin-devel/test-daikon.sh | 6 ++-- checker/bin-devel/test-downstream.sh | 4 +-- checker/bin-devel/test-guava-formatter.sh | 6 ++-- checker/bin-devel/test-guava-index.sh | 6 ++-- checker/bin-devel/test-guava-interning.sh | 6 ++-- checker/bin-devel/test-guava-lock.sh | 6 ++-- checker/bin-devel/test-guava-nullness.sh | 6 ++-- checker/bin-devel/test-guava-regex.sh | 6 ++-- checker/bin-devel/test-guava-signature.sh | 6 ++-- checker/bin-devel/test-guava.sh | 9 +++--- checker/bin-devel/test-misc.sh | 6 ++-- checker/bin-devel/test-plume-lib.sh | 7 +++-- checker/bin-devel/test-typecheck-part1.sh | 4 +-- checker/bin-devel/test-typecheck-part2.sh | 4 +-- checker/bin-devel/test-typecheck.sh | 4 +-- .../wpi-plumelib/test-wpi-plumelib.sh | 4 +-- checker/bin/wpi-many.sh | 14 ++++----- checker/bin/wpi.sh | 14 ++++----- 28 files changed, 95 insertions(+), 93 deletions(-) diff --git a/.travis-build.sh b/.travis-build.sh index 5395dd24cfe..488fab4209b 100755 --- a/.travis-build.sh +++ b/.travis-build.sh @@ -30,15 +30,15 @@ fi export CHECKERFRAMEWORK="${CHECKERFRAMEWORK:-$(pwd -P)}" echo "CHECKERFRAMEWORK=$CHECKERFRAMEWORK" -ROOTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" -SCRIPTDIR=$ROOTDIR/checker/bin-devel/ +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +BIN_DEVEL_DIR="${SCRIPT_DIR}/checker/bin-devel/" # For debugging (cd "$CHECKERFRAMEWORK" && ./gradlew getPlumeScripts) -"${SCRIPTDIR}/plume-scripts/ci-info" typetools -eval "$("${SCRIPTDIR}/plume-scripts/ci-info" typetools)" +"${BIN_DEVEL_DIR}/plume-scripts/ci-info" typetools +eval "$("${BIN_DEVEL_DIR}/plume-scripts/ci-info" typetools)" -source "$SCRIPTDIR/checker/bin-devel/clone-related.sh" +source "$BIN_DEVEL_DIR/checker/bin-devel/clone-related.sh" ### ### Run the test @@ -52,18 +52,18 @@ case $GROUP in all) # Run cftests-junit, cftests-nonjunit, and cftests-inference separately, # because cftests-all takes too long to run on Travis. - "$SCRIPTDIR/test-cftests-junit.sh" - "$SCRIPTDIR/test-cftests-nonjunit.sh" - "$SCRIPTDIR/test-cftests-inference.sh" - "$SCRIPTDIR/test-misc.sh" - "$SCRIPTDIR/test-typecheck.sh" - "$SCRIPTDIR/test-plume-lib.sh" - "$SCRIPTDIR/test-daikon.sh" - "$SCRIPTDIR/test-guava.sh" - "$SCRIPTDIR/test-downstream.sh" + "$BIN_DEVEL_DIR/test-cftests-junit.sh" + "$BIN_DEVEL_DIR/test-cftests-nonjunit.sh" + "$BIN_DEVEL_DIR/test-cftests-inference.sh" + "$BIN_DEVEL_DIR/test-misc.sh" + "$BIN_DEVEL_DIR/test-typecheck.sh" + "$BIN_DEVEL_DIR/test-plume-lib.sh" + "$BIN_DEVEL_DIR/test-daikon.sh" + "$BIN_DEVEL_DIR/test-guava.sh" + "$BIN_DEVEL_DIR/test-downstream.sh" ;; *) - "${SCRIPTDIR}/test-${GROUP}.sh" + "${BIN_DEVEL_DIR}/test-${GROUP}.sh" ;; esac diff --git a/checker/bin-devel/build.sh b/checker/bin-devel/build.sh index f6828bd8c13..9ca24a8d107 100755 --- a/checker/bin-devel/build.sh +++ b/checker/bin-devel/build.sh @@ -6,8 +6,8 @@ echo Entering checker/bin-devel/build.sh in "$(pwd)" # Fail the whole script if any command fails set -e -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" -source "$SCRIPTDIR"/clone-related.sh +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +source "$SCRIPT_DIR"/clone-related.sh # Download dependencies, trying a second time if there is a failure. # echo "NO_WRITE_VERIFICATION_METADATA=$NO_WRITE_VERIFICATION_METADATA" if [ -z "${NO_WRITE_VERIFICATION_METADATA+x}" ]; then diff --git a/checker/bin-devel/test-cftests-all.sh b/checker/bin-devel/test-cftests-all.sh index 3917ae8d810..24737210300 100755 --- a/checker/bin-devel/test-cftests-all.sh +++ b/checker/bin-devel/test-cftests-all.sh @@ -10,8 +10,8 @@ export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" -source "$SCRIPTDIR"/clone-related.sh +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +source "$SCRIPT_DIR"/clone-related.sh ./gradlew allTests --console=plain --warning-mode=all # Moved example-tests out of all tests because it fails in diff --git a/checker/bin-devel/test-cftests-inference-part1.sh b/checker/bin-devel/test-cftests-inference-part1.sh index bc6e3bae8c8..3b8a4e8df67 100755 --- a/checker/bin-devel/test-cftests-inference-part1.sh +++ b/checker/bin-devel/test-cftests-inference-part1.sh @@ -6,8 +6,8 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh ./gradlew inferenceTests-part1 --console=plain --warning-mode=all diff --git a/checker/bin-devel/test-cftests-inference-part2.sh b/checker/bin-devel/test-cftests-inference-part2.sh index 9d8bc00cf0f..201c95db496 100755 --- a/checker/bin-devel/test-cftests-inference-part2.sh +++ b/checker/bin-devel/test-cftests-inference-part2.sh @@ -6,8 +6,8 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh ./gradlew inferenceTests-part2 --console=plain --warning-mode=all diff --git a/checker/bin-devel/test-cftests-inference.sh b/checker/bin-devel/test-cftests-inference.sh index f22c610bdf9..060a81fd79b 100755 --- a/checker/bin-devel/test-cftests-inference.sh +++ b/checker/bin-devel/test-cftests-inference.sh @@ -6,8 +6,8 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh ./gradlew inferenceTests --console=plain --warning-mode=all diff --git a/checker/bin-devel/test-cftests-junit.sh b/checker/bin-devel/test-cftests-junit.sh index 999fba7ff49..5da26d8e418 100755 --- a/checker/bin-devel/test-cftests-junit.sh +++ b/checker/bin-devel/test-cftests-junit.sh @@ -6,8 +6,8 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh ./gradlew test --console=plain --warning-mode=all diff --git a/checker/bin-devel/test-cftests-nonjunit.sh b/checker/bin-devel/test-cftests-nonjunit.sh index ca8dbd336a3..a5e0b79c44e 100755 --- a/checker/bin-devel/test-cftests-nonjunit.sh +++ b/checker/bin-devel/test-cftests-nonjunit.sh @@ -6,9 +6,9 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh ./gradlew nonJunitTests --console=plain --warning-mode=all ./gradlew publishToMavenLocal --console=plain --warning-mode=all diff --git a/checker/bin-devel/test-daikon-part1.sh b/checker/bin-devel/test-daikon-part1.sh index fff59b577aa..b341353ab92 100755 --- a/checker/bin-devel/test-daikon-part1.sh +++ b/checker/bin-devel/test-daikon-part1.sh @@ -6,16 +6,16 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh # Run assembleForJavac because it does not build the javadoc, so it is faster than assemble. echo "running \"./gradlew assembleForJavac\" for checker-framework" ./gradlew assembleForJavac --console=plain -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.http.connectionTimeout=60000 # daikon-typecheck: 15 minutes -"$SCRIPTDIR/.git-scripts/git-clone-related" codespecs daikon +"$SCRIPT_DIR/.git-scripts/git-clone-related" codespecs daikon cd ../daikon git log | head -n 5 make --jobs="$(getconf _NPROCESSORS_ONLN)" compile diff --git a/checker/bin-devel/test-daikon-part2.sh b/checker/bin-devel/test-daikon-part2.sh index 3ecd31abde3..22c58bb2448 100755 --- a/checker/bin-devel/test-daikon-part2.sh +++ b/checker/bin-devel/test-daikon-part2.sh @@ -6,16 +6,16 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh # Run assembleForJavac because it does not build the javadoc, so it is faster than assemble. echo "running \"./gradlew assembleForJavac\" for checker-framework" ./gradlew assembleForJavac --console=plain -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.http.connectionTimeout=60000 # daikon-typecheck: 15 minutes -"$SCRIPTDIR/.git-scripts/git-clone-related" codespecs daikon +"$SCRIPT_DIR/.git-scripts/git-clone-related" codespecs daikon cd ../daikon git log | head -n 5 make --jobs="$(getconf _NPROCESSORS_ONLN)" compile diff --git a/checker/bin-devel/test-daikon.sh b/checker/bin-devel/test-daikon.sh index b99076db4b8..84d8003dcf2 100755 --- a/checker/bin-devel/test-daikon.sh +++ b/checker/bin-devel/test-daikon.sh @@ -6,16 +6,16 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh # Run assembleForJavac because it does not build the javadoc, so it is faster than assemble. echo "running \"./gradlew assembleForJavac\" for checker-framework" ./gradlew assembleForJavac --console=plain -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.http.connectionTimeout=60000 # daikon-typecheck: 15 minutes -"$SCRIPTDIR/.git-scripts/git-clone-related" codespecs daikon +"$SCRIPT_DIR/.git-scripts/git-clone-related" codespecs daikon cd ../daikon git log | head -n 5 make --jobs="$(getconf _NPROCESSORS_ONLN)" compile diff --git a/checker/bin-devel/test-downstream.sh b/checker/bin-devel/test-downstream.sh index e28b2c7a5d8..dfa0bda2ff0 100755 --- a/checker/bin-devel/test-downstream.sh +++ b/checker/bin-devel/test-downstream.sh @@ -6,9 +6,9 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh ## downstream tests: projects that depend on the Checker Framework. ## (There are none currently in this file.) diff --git a/checker/bin-devel/test-guava-formatter.sh b/checker/bin-devel/test-guava-formatter.sh index 29e012be729..12d6195f094 100755 --- a/checker/bin-devel/test-guava-formatter.sh +++ b/checker/bin-devel/test-guava-formatter.sh @@ -6,11 +6,11 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh -"$SCRIPTDIR/.git-scripts/git-clone-related" typetools guava +"$SCRIPT_DIR/.git-scripts/git-clone-related" typetools guava cd ../guava ./typecheck.sh formatter diff --git a/checker/bin-devel/test-guava-index.sh b/checker/bin-devel/test-guava-index.sh index ece6a6dcdad..b3e11430c41 100755 --- a/checker/bin-devel/test-guava-index.sh +++ b/checker/bin-devel/test-guava-index.sh @@ -7,11 +7,11 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh -"$SCRIPTDIR/.git-scripts/git-clone-related" typetools guava +"$SCRIPT_DIR/.git-scripts/git-clone-related" typetools guava cd ../guava if [ "$TRAVIS" = "true" ]; then diff --git a/checker/bin-devel/test-guava-interning.sh b/checker/bin-devel/test-guava-interning.sh index 6b54fa4792e..bc69bcf3818 100755 --- a/checker/bin-devel/test-guava-interning.sh +++ b/checker/bin-devel/test-guava-interning.sh @@ -6,11 +6,11 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh -"$SCRIPTDIR/.git-scripts/git-clone-related" typetools guava +"$SCRIPT_DIR/.git-scripts/git-clone-related" typetools guava cd ../guava ./typecheck.sh interning diff --git a/checker/bin-devel/test-guava-lock.sh b/checker/bin-devel/test-guava-lock.sh index b33830e40ba..85f329434f8 100755 --- a/checker/bin-devel/test-guava-lock.sh +++ b/checker/bin-devel/test-guava-lock.sh @@ -6,11 +6,11 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh -"$SCRIPTDIR/.git-scripts/git-clone-related" typetools guava +"$SCRIPT_DIR/.git-scripts/git-clone-related" typetools guava cd ../guava ./typecheck.sh lock diff --git a/checker/bin-devel/test-guava-nullness.sh b/checker/bin-devel/test-guava-nullness.sh index ebe696afc34..d42f8fd1f2a 100755 --- a/checker/bin-devel/test-guava-nullness.sh +++ b/checker/bin-devel/test-guava-nullness.sh @@ -6,11 +6,11 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh -"$SCRIPTDIR/.git-scripts/git-clone-related" typetools guava +"$SCRIPT_DIR/.git-scripts/git-clone-related" typetools guava cd ../guava ./typecheck.sh nullness diff --git a/checker/bin-devel/test-guava-regex.sh b/checker/bin-devel/test-guava-regex.sh index f7281f2c0de..b5ebb05253e 100755 --- a/checker/bin-devel/test-guava-regex.sh +++ b/checker/bin-devel/test-guava-regex.sh @@ -6,11 +6,11 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh -"$SCRIPTDIR/.git-scripts/git-clone-related" typetools guava +"$SCRIPT_DIR/.git-scripts/git-clone-related" typetools guava cd ../guava ./typecheck.sh regex diff --git a/checker/bin-devel/test-guava-signature.sh b/checker/bin-devel/test-guava-signature.sh index 950cc1d3a70..4abb8b05cf5 100755 --- a/checker/bin-devel/test-guava-signature.sh +++ b/checker/bin-devel/test-guava-signature.sh @@ -6,11 +6,11 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh -"$SCRIPTDIR/.git-scripts/git-clone-related" typetools guava +"$SCRIPT_DIR/.git-scripts/git-clone-related" typetools guava cd ../guava ./typecheck.sh signature diff --git a/checker/bin-devel/test-guava.sh b/checker/bin-devel/test-guava.sh index 8a3c2d18005..cfa29da4c8c 100755 --- a/checker/bin-devel/test-guava.sh +++ b/checker/bin-devel/test-guava.sh @@ -6,15 +6,16 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh + ./gradlew assembleForJavac --console=plain -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.http.connectionTimeout=60000 # TODO: Maybe I should move this into the CI job, and do it for all CI jobs. -cp "$SCRIPTDIR"/mvn-settings.xml ~/settings.xml +cp "$SCRIPT_DIR"/mvn-settings.xml ~/settings.xml -"$SCRIPTDIR/.git-scripts/git-clone-related" typetools guava +"$SCRIPT_DIR/.git-scripts/git-clone-related" typetools guava cd ../guava if [ "$TRAVIS" = "true" ]; then diff --git a/checker/bin-devel/test-misc.sh b/checker/bin-devel/test-misc.sh index 1b2b9c5c0ca..681a907b753 100755 --- a/checker/bin-devel/test-misc.sh +++ b/checker/bin-devel/test-misc.sh @@ -6,11 +6,11 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh -PLUME_SCRIPTS="$SCRIPTDIR/.plume-scripts" +PLUME_SCRIPTS="$SCRIPT_DIR/.plume-scripts" status=0 diff --git a/checker/bin-devel/test-plume-lib.sh b/checker/bin-devel/test-plume-lib.sh index 3fec7eb797d..b6f8e977e59 100755 --- a/checker/bin-devel/test-plume-lib.sh +++ b/checker/bin-devel/test-plume-lib.sh @@ -30,9 +30,10 @@ if [ -z ${PACKAGES+x} ]; then fi echo "PACKAGES=" "${PACKAGES[@]}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh + ./gradlew assembleForJavac --console=plain -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.http.connectionTimeout=60000 failing_packages="" @@ -41,7 +42,7 @@ for PACKAGE in "${PACKAGES[@]}"; do echo "PACKAGE=${PACKAGE}" PACKAGEDIR="/tmp/${PACKAGE}" rm -rf "${PACKAGEDIR}" - "$SCRIPTDIR/.git-scripts/git-clone-related" plume-lib "${PACKAGE}" "${PACKAGEDIR}" + "$SCRIPT_DIR/.git-scripts/git-clone-related" plume-lib "${PACKAGE}" "${PACKAGEDIR}" # Uses "compileJava" target instead of "assemble" to avoid the javadoc error "Error fetching URL: # https://docs.oracle.com/en/java/javase/17/docs/api/" due to network problems. echo "About to call ./gradlew --console=plain -PcfLocal compileJava" diff --git a/checker/bin-devel/test-typecheck-part1.sh b/checker/bin-devel/test-typecheck-part1.sh index d6031d2c486..66b3d82d2a2 100755 --- a/checker/bin-devel/test-typecheck-part1.sh +++ b/checker/bin-devel/test-typecheck-part1.sh @@ -6,9 +6,9 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh # Pluggable type-checking: run the Checker Framework on itself ./gradlew typecheck-part1 --console=plain --warning-mode=all diff --git a/checker/bin-devel/test-typecheck-part2.sh b/checker/bin-devel/test-typecheck-part2.sh index 750a2c22f57..6251a792533 100755 --- a/checker/bin-devel/test-typecheck-part2.sh +++ b/checker/bin-devel/test-typecheck-part2.sh @@ -6,9 +6,9 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh # Pluggable type-checking: run the Checker Framework on itself ./gradlew typecheck-part2 --console=plain --warning-mode=all diff --git a/checker/bin-devel/test-typecheck.sh b/checker/bin-devel/test-typecheck.sh index 92c31ebbcef..001bb6523b2 100755 --- a/checker/bin-devel/test-typecheck.sh +++ b/checker/bin-devel/test-typecheck.sh @@ -6,9 +6,9 @@ set -o xtrace export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" export ORG_GRADLE_PROJECT_useJdk21Compiler=true -source "$SCRIPTDIR"/clone-related.sh +source "$SCRIPT_DIR"/clone-related.sh # Pluggable type-checking: run the Checker Framework on itself ./gradlew typecheck --console=plain --warning-mode=all diff --git a/checker/bin-devel/wpi-plumelib/test-wpi-plumelib.sh b/checker/bin-devel/wpi-plumelib/test-wpi-plumelib.sh index ffbf1745609..f941b4857ce 100755 --- a/checker/bin-devel/wpi-plumelib/test-wpi-plumelib.sh +++ b/checker/bin-devel/wpi-plumelib/test-wpi-plumelib.sh @@ -21,7 +21,7 @@ set +e export SHELLOPTS # echo "SHELLOPTS=${SHELLOPTS}" -SCRIPTDIR="$(cd "$(dirname "$0")" && pwd)" +SCRIPT_DIR="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd -P)" CHECKERFRAMEWORK="$(cd "$(dirname "$0")"/../../.. && pwd)" # Do not use a subdirectory of $CHECKERFRAMEWORK because if a project has no @@ -79,7 +79,7 @@ test_wpi_plume_lib() { "$CHECKERFRAMEWORK/checker/bin/wpi.sh" -b "-PskipCheckerFramework" -- --checker "$checkers" echo "test-wpi-plumelib.sh for ${project} returned from wpi.sh at $(date)." - EXPECTED_FILE="$SCRIPTDIR/$project.expected" + EXPECTED_FILE="$SCRIPT_DIR/$project.expected" DLJC_OUT_DIR="$TESTDIR/$project/dljc-out" ACTUAL_FILE="$DLJC_OUT_DIR"/typecheck.out mkdir -p "$DLJC_OUT_DIR" diff --git a/checker/bin/wpi-many.sh b/checker/bin/wpi-many.sh index a772f06092c..a562ac10a46 100755 --- a/checker/bin/wpi-many.sh +++ b/checker/bin/wpi-many.sh @@ -38,13 +38,13 @@ done # Make $@ be the arguments that should be passed to dljc. shift $((OPTIND - 1)) -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" -SCRIPTPATH="${SCRIPTDIR}/wpi-many.sh" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +SCRIPT_PATH="${SCRIPT_DIR}/wpi-many.sh" # Report line numbers when the script fails, from # https://unix.stackexchange.com/a/522815 . trap 'echo >&2 "Error - exited with status $? at line $LINENO of wpi-many.sh:"; - pr -tn ${SCRIPTPATH} | tail -n+$((LINENO - 3)) | head -n7' ERR + pr -tn ${SCRIPT_PATH} | tail -n+$((LINENO - 3)) | head -n7' ERR echo "Starting wpi-many.sh." @@ -307,7 +307,7 @@ while IFS='' read -r line || [ "$line" ]; do else # it's important that "${OUTDIR}-results/wpi-out" < /dev/null + /bin/bash -x "${SCRIPT_DIR}/wpi.sh" -d "${REPO_FULLPATH}" -t "${TIMEOUT}" -g "${GRADLECACHEDIR}" -- "$@" &> "${OUTDIR}-results/wpi-out" < /dev/null wpi_status=$? if [[ $wpi_status -eq 0 ]]; then wpi_status_string="success" @@ -487,14 +487,14 @@ else exit 1 fi - mkdir -p "${SCRIPTDIR}/.scc" - cd "${SCRIPTDIR}/.scc" || exit 5 + mkdir -p "${SCRIPT_DIR}/.scc" + cd "${SCRIPT_DIR}/.scc" || exit 5 wget -nc "https://github.com/boyter/scc/releases/download/v2.13.0/scc-2.13.0-i386-unknown-linux.zip" \ || (sleep 60s && wget -nc "https://github.com/boyter/scc/releases/download/v2.13.0/scc-2.13.0-i386-unknown-linux.zip") unzip -o "scc-2.13.0-i386-unknown-linux.zip" # shellcheck disable=SC2046 - if ! "${SCRIPTDIR}/.scc/scc" --output "${OUTDIR}-results/loc.txt" $(< "${listpath}"); then + if ! "${SCRIPT_DIR}/.scc/scc" --output "${OUTDIR}-results/loc.txt" $(< "${listpath}"); then echo "Problem in wpi-many.sh while running scc." echo " listpath = ${listpath}" echo " generated from ${OUTDIR}-results/results_available.txt" diff --git a/checker/bin/wpi.sh b/checker/bin/wpi.sh index a48bbfa071c..2a973efd74e 100755 --- a/checker/bin/wpi.sh +++ b/checker/bin/wpi.sh @@ -34,13 +34,13 @@ done # Make $@ be the arguments that should be passed to dljc. shift $((OPTIND - 1)) -SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)" -SCRIPTPATH="${SCRIPTDIR}/wpi.sh" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +SCRIPT_PATH="${SCRIPT_DIR}/wpi.sh" # Report line numbers when the script fails, from # https://unix.stackexchange.com/a/522815 . trap 'echo >&2 "Error - exited with status $? at line $LINENO of wpi.sh:"; - pr -tn ${SCRIPTPATH} | tail -n+$((LINENO - 3)) | head -n7' ERR + pr -tn ${SCRIPT_PATH} | tail -n+$((LINENO - 3)) | head -n7' ERR echo "Starting wpi.sh." @@ -335,9 +335,9 @@ stdout is in $dljc_stdout" # Clone or update DLJC if [ "${DLJC}" = "" ]; then # The user did not set the DLJC environment variable. - DLJC="${SCRIPTDIR}/.do-like-javac/dljc" + DLJC="${SCRIPT_DIR}/.do-like-javac/dljc" if [ ! -f "${DLJC}" ]; then - (cd "$SCRIPTDIR"/../.. && ./gradlew getDoLikeJavac) + (cd "$SCRIPT_DIR"/../.. && ./gradlew getDoLikeJavac) fi else # The user did set the DLJC environment variable. @@ -346,8 +346,8 @@ else exit 1 fi fi -if [ ! -f "$SCRIPTDIR/../dist/checker.jar" ]; then - (cd "$SCRIPTDIR"/../.. && ./gradlew assembleForJavac) +if [ ! -f "$SCRIPT_DIR/../dist/checker.jar" ]; then + (cd "$SCRIPT_DIR"/../.. && ./gradlew assembleForJavac) fi #### Main script