diff --git a/bin/internal/update_dart_sdk.ps1 b/bin/internal/update_dart_sdk.ps1 index cb95257d92..dd7cafa53b 100644 --- a/bin/internal/update_dart_sdk.ps1 +++ b/bin/internal/update_dart_sdk.ps1 @@ -20,9 +20,16 @@ $cachePath = "$flutterRoot\bin\cache" $dartSdkPath = "$cachePath\dart-sdk" $dartSdkLicense = "$cachePath\LICENSE.dart_sdk_archive.md" $engineStamp = "$cachePath\engine-dart-sdk.stamp" -$engineVersion = (Get-Content "$flutterRoot\bin\internal\engine.version") $engineRealm = (Get-Content "$flutterRoot\bin\internal\engine.realm") +if (Test-Path "$flutterRoot\bin\internal\engine.version") { + $engineVersion = (Get-Content "$flutterRoot\bin\internal\engine.version") +} else { + # Calculate the engine hash from tracked git files. + $lsTree = ((git ls-tree -r HEAD engine DEPS) | Out-String).Replace("`r`n", "`n") + $engineVersion = (Get-FileHash -InputStream ([System.IO.MemoryStream] [System.Text.Encoding]::UTF8.GetBytes($lsTree)) -Algorithm SHA1 | ForEach-Object { $_.Hash }).ToLower() +} + $oldDartSdkPrefix = "dart-sdk.old" # Make sure that PowerShell has expected version. diff --git a/bin/internal/update_dart_sdk.sh b/bin/internal/update_dart_sdk.sh index 8d7b3adf56..5c1ea23e8b 100755 --- a/bin/internal/update_dart_sdk.sh +++ b/bin/internal/update_dart_sdk.sh @@ -19,10 +19,18 @@ FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")" DART_SDK_PATH="$FLUTTER_ROOT/bin/cache/dart-sdk" DART_SDK_PATH_OLD="$DART_SDK_PATH.old" ENGINE_STAMP="$FLUTTER_ROOT/bin/cache/engine-dart-sdk.stamp" -ENGINE_VERSION=$(cat "$FLUTTER_ROOT/bin/internal/engine.version") ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/internal/engine.realm" | tr -d '[:space:]') OS="$(uname -s)" +ENGINE_VERSION="" +if [ -f "$FLUTTER_ROOT/bin/internal/engine.version" ]; then + ENGINE_VERSION=$(cat "$FLUTTER_ROOT/bin/internal/engine.version") +else + # Calculate the engine hash from tracked git files. + # The array takes the first part of the sha1sum string. + ENGINE_VERSION=($(git ls-tree HEAD -r engine DEPS | sha1sum)) +fi + if [ ! -f "$ENGINE_STAMP" ] || [ "$ENGINE_VERSION" != `cat "$ENGINE_STAMP"` ]; then command -v curl > /dev/null 2>&1 || { >&2 echo