blob: b400ac459a1bcd4470935268bbd4de6fefc47ea8 [file] [log] [blame]
#!/bin/bash
set -e
# Check if the user has provided the version as an argument
if [ -z "$1" ]; then
echo "Error: No version provided. Usage: $0 <gradle-version>"
exit 1
fi
VERSION="$1"
DEST_DIR="../../tools/external/gradle"
WRAPPER_FILES=("gradle/wrapper/gradle-wrapper.properties" "playground-common/gradle/wrapper/gradle-wrapper.properties")
BASE_URL="https://services.gradle.org/distributions"
ZIP_FILE="gradle-${VERSION}-bin.zip"
SHA_FILE="${ZIP_FILE}.sha256"
# Function to check if a URL is valid by checking the HTTP status code
check_url() {
local url="$1"
echo "Checking URL: $url"
http_status=$(curl -L --silent --head --write-out "%{http_code}" --output /dev/null "$url")
if [ "$http_status" -ne 200 ]; then
echo "Error: URL returned status code $http_status. The file doesn't exist at: $url"
exit 1
else
echo "URL is valid: $url"
fi
}
check_url "$BASE_URL/$ZIP_FILE"
check_url "$BASE_URL/$SHA_FILE"
echo "Cleaning destination directory: $DEST_DIR"
rm -rf "$DEST_DIR"/*
mkdir -p "$DEST_DIR"
echo "Downloading Gradle ${VERSION}..."
curl -Lo "$DEST_DIR/$ZIP_FILE" "$BASE_URL/$ZIP_FILE"
curl -Lo "$DEST_DIR/$SHA_FILE" "$BASE_URL/$SHA_FILE"
GRADLE_SHA256SUM=$(cat "$DEST_DIR/$SHA_FILE")
echo "Downloaded Gradle ${VERSION} with SHA256: $GRADLE_SHA256SUM"
update_gradle_wrapper_properties() {
local file="$1"
echo "Updating $file..."
if [ "$(uname)" = "Darwin" ]; then
sed -i '' "
s|distributionUrl=.*tools/external/gradle/.*|distributionUrl=../../../../tools/external/gradle/${ZIP_FILE}|;
s|distributionUrl=https\\\://services.gradle.org/distributions/.*|distributionUrl=https\\\://services.gradle.org/distributions/${ZIP_FILE}|;
s|distributionSha256Sum=.*|distributionSha256Sum=${GRADLE_SHA256SUM}|
" "$file"
else
sed -i "
s|distributionUrl=.*tools/external/gradle/.*|distributionUrl=../../../../tools/external/gradle/${ZIP_FILE}|;
s|distributionUrl=https\\\://services.gradle.org/distributions/.*|distributionUrl=https\\\://services.gradle.org/distributions/${ZIP_FILE}|;
s|distributionSha256Sum=.*|distributionSha256Sum=${GRADLE_SHA256SUM}|
" "$file"
fi
echo "Updated $file."
}
for file in "${WRAPPER_FILES[@]}"; do
update_gradle_wrapper_properties "$file"
done
echo "Gradle binary downloaded, and the wrapper properties updated successfully!"
echo "Testing the setup with './gradlew bOS --dry-run'..."
if ./gradlew bOS --dry-run; then
echo "Download and setup successful!"
echo "You can now upload changes in $(pwd) and $DEST_DIR to Gerrit!"
fi