From 67b38da25fa39287a5ec905b46c1bb48562a0613 Mon Sep 17 00:00:00 2001 From: Ryan Davis Date: Mon, 8 Aug 2016 16:50:59 -0700 Subject: [PATCH] Overhaul install-racket.sh and add test.sh to validate full matrix. Namely, added test.sh to run through all the possible downloads and test for validity. Added handler for TEST=1 in install-racket.sh. Normalize urls as much as possible and to get minimal installs working properly. This can probably be merged to master and drop the minimal branch entirely. I think there is still some cleanup that can happen. The various linux flavors can probably be unified, if not parameterized. This patch removes SCOPE_SNAPSHOT, as it seems to point to incredibly stale content. RELEASE does too, but there is a note that it is only valid during release phases. --- install-racket.sh | 59 ++++++++++++++++++++++++++++++++++++----------- test.sh | 7 ++++++ 2 files changed, 52 insertions(+), 14 deletions(-) create mode 100755 test.sh diff --git a/install-racket.sh b/install-racket.sh index 75b528f..14cf1e4 100755 --- a/install-racket.sh +++ b/install-racket.sh @@ -3,20 +3,46 @@ set -e -if [[ "$RACKET_VERSION" = "HEAD" ]]; then - URL="http://plt.eecs.northwestern.edu/snapshots/current/installers/racket-test-current-x86_64-linux-precise.sh" -elif [[ "$RACKET_VERSION" = "SCOPE_SNAPSHOT" ]]; then - URL="http://www.cs.utah.edu/~mflatt/tmp/scope-snapshot/installers/racket-current-x86_64-linux.sh" -elif [[ "$RACKET_VERSION" = "RELEASE" ]]; then - URL="http://pre-release.racket-lang.org/installers/racket-current-x86_64-linux.sh" -elif [[ "$RACKET_VERSION" = 5.9* ]]; then - URL="http://download.racket-lang.org/installers/${RACKET_VERSION}/racket-${RACKET_VERSION}-x86_64-linux-ubuntu-quantal.sh" -elif [[ "$RACKET_VERSION" = 6.[0-4]* ]]; then - URL="http://download.racket-lang.org/installers/${RACKET_VERSION}/racket-${RACKET_VERSION}-x86_64-linux-ubuntu-precise.sh" -elif [[ "$RACKET_VERSION" = 6.* ]]; then - URL="http://download.racket-lang.org/installers/${RACKET_VERSION}/racket-${RACKET_VERSION}-x86_64-linux.sh" +if [[ "$RACKET_MINIMAL" = "1" ]]; then + MIN="minimal-" else - URL="http://download.racket-lang.org/installers/${RACKET_VERSION}/racket/racket-${RACKET_VERSION}-bin-x86_64-linux-debian-squeeze.sh" + MIN="" +fi + +DL_BASE="http://download.racket-lang.org/installers" + +if [[ "$RACKET_VERSION" = "HEAD" ]]; then + if [[ "$RACKET_MINIMAL" = "1" ]]; then + URL="http://plt.eecs.northwestern.edu/snapshots/current/installers/min-racket-current-x86_64-linux-precise.sh" + else + URL="http://plt.eecs.northwestern.edu/snapshots/current/installers/racket-test-current-x86_64-linux-precise.sh" + fi +elif [[ "$RACKET_VERSION" = 5.3* ]]; then + if [[ "$RACKET_MINIMAL" = "1" ]]; then + URL="${DL_BASE}/${RACKET_VERSION}/racket-textual/racket-textual-${RACKET_VERSION}-bin-x86_64-linux-debian-squeeze.sh" + else + URL="${DL_BASE}/${RACKET_VERSION}/racket/racket-${MIN}${RACKET_VERSION}-bin-x86_64-linux-debian-squeeze.sh" + fi +elif [[ "$RACKET_VERSION" = "RELEASE" ]]; then + URL="http://pre-release.racket-lang.org/installers/racket-${MIN}current-x86_64-linux.sh" +elif [[ "$RACKET_VERSION" = 5.9* ]]; then + URL="${DL_BASE}/${RACKET_VERSION}/racket-${MIN}${RACKET_VERSION}-x86_64-linux-ubuntu-quantal.sh" +elif [[ "$RACKET_VERSION" = 6.[0-4]* ]]; then + URL="${DL_BASE}/${RACKET_VERSION}/racket-${MIN}${RACKET_VERSION}-x86_64-linux-ubuntu-precise.sh" +elif [[ "$RACKET_VERSION" = 6.* ]]; then + URL="${DL_BASE}/${RACKET_VERSION}/racket-${MIN}${RACKET_VERSION}-x86_64-linux.sh" +else + echo "ERROR: Unsupported version ${RACKET_VERSION}" + exit 1 +fi + +if [ -n "$TEST" ]; then + printf "%s %-7s %-120s " $RACKET_MINIMAL $RACKET_VERSION $URL + if curl -I -L $URL 2>&1 | grep 404.Not.Found ; then + exit 1 + fi + echo "GOOD" + exit 0 fi # Older .travis.yml files don't set $RACKET_DIR (the Racket install @@ -25,7 +51,7 @@ if [[ "$RACKET_DIR" = "" ]]; then RACKET_DIR=/usr/racket fi -INSTALLER="./racket-${RACKET_VERSION}.sh" +INSTALLER="./racket-${MIN}${RACKET_VERSION}.sh" echo "Downloading $URL to $INSTALLER:" curl -L -o $INSTALLER $URL @@ -48,4 +74,9 @@ no EOF +if [[ "$RACKET_MINIMAL" = "1" ]]; then + echo "Minimal Racket: Installing packages for raco test..." + ${RACKET_DIR}/bin/raco pkg install --auto --scope installation rackunit-lib compiler-lib +fi + exit 0 diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..03b6a24 --- /dev/null +++ b/test.sh @@ -0,0 +1,7 @@ +#!/usr/bin/bash + +for VER in 6.6 6.5 6.4 6.3 6.2 6.2.1 6.1 6.1.1 6.0 6.0.1 5.93 5.92 5.3 5.3.6 5.3.5 5.3.4 5.3.3 5.3.2 5.3.1 HEAD RELEASE ; do + for MIN in 0 1; do + TEST=1 RACKET_MINIMAL=$MIN RACKET_VERSION=$VER ./install-racket.sh + done +done