diff --git a/flutter.sh b/flutter.sh index bf755b6..7634bc3 100755 --- a/flutter.sh +++ b/flutter.sh @@ -2,7 +2,7 @@ # requires: curl, unzip, gsutil, jq DEST_DIR="${TUNASYNC_WORKING_DIR}" -STABLE_VERSION_ENGINE=true +SYNC_FLUTTER_ENGINES=latest_tags gsutil rsync -d -C -r -x '(1\..+/|\d{5}/|.+/api-docs)' gs://dart-archive/channels/stable/release \ "${DEST_DIR}/dart-archive/channels/stable/release" @@ -10,27 +10,35 @@ gsutil rsync -d -C -r -x '(dev|beta)' gs://flutter_infra/releases \ "${DEST_DIR}/flutter_infra/releases" -if [[ "$STABLE_VERSION_ENGINE" == "true" ]];then - for i in ${DEST_DIR}/flutter_infra/releases/stable/macos/*.zip; do - engine_version=$(unzip -p "$i" flutter/bin/internal/engine.version) - echo "======== name ${i##*/}, engine version ($engine_version) ========" - path=flutter_infra/flutter/$engine_version - mkdir -p "${DEST_DIR}/$path" 2>/dev/null || true - gsutil -m rsync -d -C -r "gs://$path" "${DEST_DIR}/$path" - done -else +function sync_engine() { + [[ -z "$1" ]] && exit 1 + path="flutter_infra/flutter/$1" + mkdir -p "${DEST_DIR}/$path" 2>/dev/null || true + gsutil -m rsync -d -C -r "gs://$path" "${DEST_DIR}/$path" +} + +if [[ "$SYNC_FLUTTER_ENGINES" == "recent_tags" ]]; then curl -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/flutter/flutter/tags" | \ jq -r '.[]| [.name]| @tsv' | \ while IFS=$'\t' read -r name; do engine_version=$(curl "https://raw.githubusercontent.com/flutter/flutter/$name/bin/internal/engine.version") echo "======== tag $name, engine version ($engine_version) ========" - path=flutter_infra/flutter/$engine_version - mkdir -p "${DEST_DIR}/$path" 2>/dev/null || true - gsutil -m rsync -d -C -r "gs://$path" "${DEST_DIR}/$path" + sync_engine "$engine_version" done -fi +elif [[ "$SYNC_FLUTTER_ENGINES" == "latest_tags" ]]; then + for branch in stable beta dev; do + engine_version=$(curl "https://raw.githubusercontent.com/flutter/flutter/$branch/bin/internal/engine.version") + echo "======== branch ${branch}, engine version ($engine_version) ========" + sync_engine "$engine_version" -exit 0 + for i in ${DEST_DIR}/flutter_infra/releases/${branch}/macos/*.zip; do + [[ -f "$i" ]] || continue + engine_version=$(unzip -p "$i" flutter/bin/internal/engine.version) + echo "======== installer name ${i##*/}, engine version ($engine_version) ========" + sync_engine "$engine_version" + done + done +fi for path in "flutter_infra/ios-usb-dependencies" \ "flutter_infra/flutter/fonts" \