param( [string]$platform = "" ) # TODO: remove # https://github.com/flutter/flutter/issues/182281 $NewOverScrollIndicator = "362b1de29974ffc1ed6faa826e1df870d7bec75f"; $BottomSheetAndroidPatch = "lib/scripts/bottom_sheet_android.patch" # https://github.com/bggRGjQaUbCoE/PiliPlus/issues/1906 $BottomSheetIOSFlutterPatch = "lib/scripts/bottom_sheet_ios_flutter.patch" $BottomSheetIOSPiliPlusPatch = "lib/scripts/bottom_sheet_ios_piliplus.patch" # https://github.com/bggRGjQaUbCoE/PiliPlus/issues/1662 $ScrollViewPatch = "lib/scripts/scroll_view.patch" # https://github.com/bggRGjQaUbCoE/PiliPlus/issues/2106 $TextSelectionPatch = "lib/scripts/text_selection.patch" # https://github.com/bggRGjQaUbCoE/PiliPlus/issues/1947 $NavigatorPatch = "lib/scripts/navigator.patch" # https://github.com/bggRGjQaUbCoE/PiliPlus/issues/2107 $ImageAnimPatch = "lib/scripts/image_anim.patch" $LayoutBuilderPatch = "lib/scripts/layout_builder.patch" # TODO: remove # https://github.com/flutter/flutter/issues/90223 $ModalBarrierPatch = "lib/scripts/modal_barrier.patch" # TODO: remove # https://github.com/flutter/flutter/issues/182466 $MouseCursorPatch = "lib/scripts/mouse_cursor.patch" if ($platform.ToLower() -eq "ios") { git apply $BottomSheetIOSPiliPlusPatch if ($LASTEXITCODE -eq 0) { Write-Host "$BottomSheetIOSPiliPlusPatch applied" } } Set-Location $env:FLUTTER_ROOT $picks = @() $reverts = @() $patches = @($ModalBarrierPatch, $TextSelectionPatch, $MouseCursorPatch, $ImageAnimPatch, $LayoutBuilderPatch) switch ($platform.ToLower()) { "android" { $reverts += $NewOverScrollIndicator $patches += $BottomSheetAndroidPatch $patches += $ScrollViewPatch $patches += $NavigatorPatch } "ios" { $patches += $ScrollViewPatch $patches += $BottomSheetIOSFlutterPatch $patches += $NavigatorPatch } "linux" { } "macos" { } "windows" { } default {} } git config --global user.name "ci" git config --global user.email "example@example.com" git reset --hard HEAD foreach ($pick in $picks) { git stash git cherry-pick $pick --no-edit if ($LASTEXITCODE -eq 0) { git reset --soft HEAD~1 Write-Host "$pick picked" } git stash pop } foreach ($revert in $reverts) { git stash git revert $revert --no-edit if ($LASTEXITCODE -eq 0) { git reset --soft HEAD~1 Write-Host "$revert reverted" } git stash pop } foreach ($patch in $patches) { git apply "$env:GITHUB_WORKSPACE/$patch" if ($LASTEXITCODE -eq 0) { Write-Host "$patch applied" } }