#!/usr/bin/env bash # Copyright 2014 The Flutter Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. set -e # Update this URL to get another version of the Gradle wrapper. # If the AOSP folks have changed the layout of their templates, you may also need to update the # script below to grab the right files... WRAPPER_SRC_URL="https://android.googlesource.com/platform/tools/base/+archive/0b5c1398d1d04ac245a310de98825cb7b3278e2a/templates.tgz" case "$(uname -s)" in Darwin) SHASUM="shasum" ;; *) SHASUM="sha1sum" ;; esac function follow_links() { cd -P "${1%/*}" file="$PWD/${1##*/}" while [ -h "$file" ]; do # On Mac OS, readlink -f doesn't work. cd -P "${file%/*}" file="$(readlink "$file")" cd -P "${file%/*}" file="$PWD/${file##*/}" done echo "$PWD/${file##*/}" } # Convert a filesystem path to a format usable by Dart's URI parser. function path_uri() { # Reduce multiple leading slashes to a single slash. echo "$1" | sed -E -e "s,^/+,/," } PROG_NAME="$(path_uri "$(follow_links "$BASH_SOURCE")")" BIN_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)" FLUTTER_ROOT="$(cd "${BIN_DIR}/../.." ; pwd -P)" WRAPPER_VERSION_PATH="$FLUTTER_ROOT/bin/internal/gradle_wrapper.version" WRAPPER_TEMP_DIR="$FLUTTER_ROOT/bin/cache/gradle-wrapper-temp" echo "Downloading gradle wrapper..." rm -rf "$WRAPPER_TEMP_DIR" mkdir "$WRAPPER_TEMP_DIR" curl --continue-at - --location --output "$WRAPPER_TEMP_DIR/templates.tgz" "$WRAPPER_SRC_URL" 2>&1 echo echo "Repackaging files..." mkdir "$WRAPPER_TEMP_DIR/unpack" tar xzf "$WRAPPER_TEMP_DIR/templates.tgz" -C "$WRAPPER_TEMP_DIR/unpack" gradle NOTICE mkdir "$WRAPPER_TEMP_DIR/repack" mv "$WRAPPER_TEMP_DIR/unpack/gradle/wrapper"/* "$WRAPPER_TEMP_DIR/repack/" mv "$WRAPPER_TEMP_DIR/unpack/NOTICE" "$WRAPPER_TEMP_DIR/repack/" pushd "$WRAPPER_TEMP_DIR/repack" > /dev/null STAMP=`for h in $(find . -type f); do $SHASUM $h; done | $SHASUM | cut -d' ' -f1` echo "Packaged files:" tar cvzf ../gradle-wrapper.tgz * popd > /dev/null echo echo "Uploading repackaged gradle wrapper..." echo "Content hash: $STAMP" gsutil.py cp -n "$WRAPPER_TEMP_DIR/gradle-wrapper.tgz" "gs://flutter_infra/gradle-wrapper/$STAMP/gradle-wrapper.tgz" echo "flutter_infra/gradle-wrapper/$STAMP/gradle-wrapper.tgz" > "$WRAPPER_VERSION_PATH" rm -rf "$WRAPPER_TEMP_DIR" echo echo "All done. Updated bin/internal/gradle_wrapper.version, don't forget to commit!"