Refactor bin/ shell scripts for better performance and safety#182674
Conversation
- Utilized native bash parameter expansion and file reading mechanisms like $(< file) instead of sub-shelling external invocations like $(cat file). - Enforced path-safety across internal directory traversals by appending -- to cd and rm commands, insulating scripts against files/folders that might start with a hyphen. - Restructured chmod application using find -exec ... + to batch parameter arguments, bypassing the overhead of spinning up individual process instances per matched file. - Cleaned up control flow logic, replacing redundant $? and set +e manipulations with graceful || true fallback patterns and more idiomatic if list; then blocks.
There was a problem hiding this comment.
Code Review
The pull request refactors several bash scripts to improve performance, safety, and readability. Key changes include using native bash parameter expansion and file reading, enforcing path-safety with -- in cd and rm commands, batching chmod operations with find -exec ... +, and simplifying control flow logic. Overall, these changes enhance the robustness and efficiency of the shell scripts.
|
/gemini review |
There was a problem hiding this comment.
Code Review
The pull request successfully refactors several shell scripts to improve performance and safety. Key improvements include using Bash built-ins for file reading and parameter expansion, adding -- to directory and file operations to prevent misinterpretation of filenames starting with hyphens, and optimizing find commands. The cleanup of control flow logic also makes the scripts more idiomatic and robust.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a series of performance and safety improvements across numerous shell scripts in the repository. Key changes include replacing external command invocations like cat with more efficient shell built-ins such as $(< file), and using find ... -exec ... + to batch commands. Safety is enhanced by consistently using -- with cd and rm to handle pathnames that could be misinterpreted as options. Additionally, control flow logic has been refactored to be more robust and idiomatic, for instance by replacing set +/-e blocks with if cmd; then ... or ... || true constructs. The changes are well-executed and improve the overall quality of the scripts.
| set +e | ||
| git -C "$FLUTTER_ROOT" remote get-url upstream >/dev/null 2>&1 | ||
| if [[ $? -eq 0 ]]; then | ||
| if git -C "$FLUTTER_ROOT" remote get-url upstream >/dev/null 2>&1; then |
There was a problem hiding this comment.
if you really want to clean this up; set GIT_WORK_TREE="$FLUTTER_ROOT" and you can remove the -C option from all the git commands
There was a problem hiding this comment.
but we'd have to set the environment, right? We wouldn't want that to leak into other bits?
There was a problem hiding this comment.
You can set it up to be a local variable that isn't exported.
|
|
||
| # Try to find the merge-base with master, then main. | ||
| MERGEBASE=$(git -C "$FLUTTER_ROOT" merge-base HEAD "$REMOTE/master" 2>/dev/null) | ||
| MERGEBASE=$(git -C "$FLUTTER_ROOT" merge-base HEAD "$REMOTE/master" 2>/dev/null || true) |
Roll Flutter from dad6f9d4107a to b31548feb941 (39 revisions) flutter/flutter@dad6f9d...b31548f 2026-02-25 mdebbar@google.com [web] Fix failure on Firefox 148 (flutter/flutter#182855) 2026-02-25 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from KfPgw04T0OEADLJA5... to XI0Ax7fbtYE4XKYAQ... (flutter/flutter#182887) 2026-02-25 50643541+Mairramer@users.noreply.github.com Use AnimationStyle curve and reverseCurve in ModalBottomSheet animation (flutter/flutter#181403) 2026-02-25 engine-flutter-autoroll@skia.org Roll Dart SDK from fd3dce5b6a4e to 5c57e75f1102 (9 revisions) (flutter/flutter#182801) 2026-02-25 98614782+auto-submit[bot]@users.noreply.github.com Reverts "refactor: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (#182697)" (flutter/flutter#182879) 2026-02-25 ahmedsameha1@gmail.com Make sure that an AnimatedSlide doesn't crash in 0x0 environment (flutter/flutter#181535) 2026-02-24 jmccandless@google.com Reland Standardize on Test* widgets in *_tester.dart files (flutter/flutter#182632) 2026-02-24 nhan13574@gmail.com docs(Path): clarify that zero-length contours are excluded from computeMetrics (flutter/flutter#180165) 2026-02-24 mdebbar@google.com Fix typo in assert message (flutter/flutter#182843) 2026-02-24 matej.knopp@gmail.com [win32] Fix overflow in TaskRunnerWindow. (flutter/flutter#182822) 2026-02-24 abadasamuelosp@gmail.com feat: Add --no-uninstall flag to flutter test for integration tests (flutter/flutter#182714) 2026-02-24 74057391+jhonathanqz@users.noreply.github.com Rename noFrequencyBasedMinification to useFrequencyBasedMinification (flutter/flutter#182684) 2026-02-24 60122246+xiaowei-guan@users.noreply.github.com [Impeller] Fix fail to render pixel buffer texture on Linux (flutter/flutter#181656) 2026-02-24 15619084+vashworth@users.noreply.github.com Remove FlutterFramework app migration (flutter/flutter#182100) 2026-02-24 engine-flutter-autoroll@skia.org Roll Packages from 12b43a1 to 062c8d4 (5 revisions) (flutter/flutter#182839) 2026-02-24 mdebbar@google.com [web] Run webparagraph tests in CI (flutter/flutter#182092) 2026-02-24 jason-simmons@users.noreply.github.com Fix a race in EmbedderTest.CanSpecifyCustomUITaskRunner (flutter/flutter#182649) 2026-02-24 srawlins@google.com flutter_tools: Use a super-parameter in several missed cases (flutter/flutter#182581) 2026-02-24 116356835+AbdeMohlbi@users.noreply.github.com Replace more references to `flutter/engine` with `flutter/flutter` (flutter/flutter#182654) 2026-02-24 50643541+Mairramer@users.noreply.github.com Carousel: Migration from Scrollable+Viewport to CustomScrollView (flutter/flutter#182475) 2026-02-24 97480502+b-luk@users.noreply.github.com Refactor impellerc_main to better organize some of its logic (flutter/flutter#182783) 2026-02-24 116356835+AbdeMohlbi@users.noreply.github.com Remove unused `getPluginList ` (flutter/flutter#182660) 2026-02-24 34465683+rkishan516@users.noreply.github.com Refactor: Remove material from ticker provider test (flutter/flutter#181697) 2026-02-24 engine-flutter-autoroll@skia.org Roll Skia from 26eebffe12bd to f44d7db68805 (3 revisions) (flutter/flutter#182821) 2026-02-24 34465683+rkishan516@users.noreply.github.com refactor: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (flutter/flutter#182697) 2026-02-24 engine-flutter-autoroll@skia.org Roll Skia from 7dad66aae75a to 26eebffe12bd (5 revisions) (flutter/flutter#182810) 2026-02-24 pokepsi@gmail.com Update roadmap for 2026 (flutter/flutter#182798) 2026-02-24 fluttergithubbot@gmail.com Marks Windows tool_tests_commands_1_2 to be unflaky (flutter/flutter#179670) 2026-02-23 zhongliu88889@gmail.com [web] scroll iOS iframe text input into view (flutter/flutter#179759) 2026-02-23 Mail@maikwild.de Fix textscaler clamp assertion error (flutter/flutter#181716) 2026-02-23 engine-flutter-autoroll@skia.org Roll Skia from 9a5a3c92c336 to 7dad66aae75a (4 revisions) (flutter/flutter#182779) 2026-02-23 116356835+AbdeMohlbi@users.noreply.github.com Move more getters from userMessages class to the appropriate places (flutter/flutter#182656) 2026-02-23 engine-flutter-autoroll@skia.org Manual roll Dart SDK from f8fac50475b8 to fd3dce5b6a4e (6 revisions) (flutter/flutter#182768) 2026-02-23 15619084+vashworth@users.noreply.github.com Copy Flutter framework to Add to App FlutterPluginRgistrant (flutter/flutter#182523) 2026-02-23 mr-peipei@web.de Add progress indicator to artifact downloads (flutter/flutter#181808) 2026-02-23 47866232+chunhtai@users.noreply.github.com Clarify batch release mode requirements (flutter/flutter#182228) 2026-02-23 mdebbar@google.com [web] Remove --disable-gpu from flutter chrome tests (flutter/flutter#182618) 2026-02-23 jwren@google.com running-apps: update running-apps to use Duration.ago() (flutter/flutter#182172) 2026-02-23 kevmoo@users.noreply.github.com Refactor bin/ shell scripts for better performance and safety (flutter/flutter#182674) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. ...
…r#182674) - Utilized native bash parameter expansion and file reading mechanisms like `$(< file)` instead of sub-shelling external invocations like `$(cat file)`. - Enforced path-safety across internal directory traversals by appending -- to cd and rm commands, insulating scripts against files/folders that might start with a hyphen. - Restructured chmod application using find -exec ... + to batch parameter arguments, bypassing the overhead of spinning up individual process instances per matched file. - Cleaned up control flow logic, replacing redundant $? and set +e manipulations with graceful || true fallback patterns and more idiomatic if list; then blocks.
…r#11116) Roll Flutter from dad6f9d4107a to b31548feb941 (39 revisions) flutter/flutter@dad6f9d...b31548f 2026-02-25 mdebbar@google.com [web] Fix failure on Firefox 148 (flutter/flutter#182855) 2026-02-25 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from KfPgw04T0OEADLJA5... to XI0Ax7fbtYE4XKYAQ... (flutter/flutter#182887) 2026-02-25 50643541+Mairramer@users.noreply.github.com Use AnimationStyle curve and reverseCurve in ModalBottomSheet animation (flutter/flutter#181403) 2026-02-25 engine-flutter-autoroll@skia.org Roll Dart SDK from fd3dce5b6a4e to 5c57e75f1102 (9 revisions) (flutter/flutter#182801) 2026-02-25 98614782+auto-submit[bot]@users.noreply.github.com Reverts "refactor: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (#182697)" (flutter/flutter#182879) 2026-02-25 ahmedsameha1@gmail.com Make sure that an AnimatedSlide doesn't crash in 0x0 environment (flutter/flutter#181535) 2026-02-24 jmccandless@google.com Reland Standardize on Test* widgets in *_tester.dart files (flutter/flutter#182632) 2026-02-24 nhan13574@gmail.com docs(Path): clarify that zero-length contours are excluded from computeMetrics (flutter/flutter#180165) 2026-02-24 mdebbar@google.com Fix typo in assert message (flutter/flutter#182843) 2026-02-24 matej.knopp@gmail.com [win32] Fix overflow in TaskRunnerWindow. (flutter/flutter#182822) 2026-02-24 abadasamuelosp@gmail.com feat: Add --no-uninstall flag to flutter test for integration tests (flutter/flutter#182714) 2026-02-24 74057391+jhonathanqz@users.noreply.github.com Rename noFrequencyBasedMinification to useFrequencyBasedMinification (flutter/flutter#182684) 2026-02-24 60122246+xiaowei-guan@users.noreply.github.com [Impeller] Fix fail to render pixel buffer texture on Linux (flutter/flutter#181656) 2026-02-24 15619084+vashworth@users.noreply.github.com Remove FlutterFramework app migration (flutter/flutter#182100) 2026-02-24 engine-flutter-autoroll@skia.org Roll Packages from 12b43a1 to 062c8d4 (5 revisions) (flutter/flutter#182839) 2026-02-24 mdebbar@google.com [web] Run webparagraph tests in CI (flutter/flutter#182092) 2026-02-24 jason-simmons@users.noreply.github.com Fix a race in EmbedderTest.CanSpecifyCustomUITaskRunner (flutter/flutter#182649) 2026-02-24 srawlins@google.com flutter_tools: Use a super-parameter in several missed cases (flutter/flutter#182581) 2026-02-24 116356835+AbdeMohlbi@users.noreply.github.com Replace more references to `flutter/engine` with `flutter/flutter` (flutter/flutter#182654) 2026-02-24 50643541+Mairramer@users.noreply.github.com Carousel: Migration from Scrollable+Viewport to CustomScrollView (flutter/flutter#182475) 2026-02-24 97480502+b-luk@users.noreply.github.com Refactor impellerc_main to better organize some of its logic (flutter/flutter#182783) 2026-02-24 116356835+AbdeMohlbi@users.noreply.github.com Remove unused `getPluginList ` (flutter/flutter#182660) 2026-02-24 34465683+rkishan516@users.noreply.github.com Refactor: Remove material from ticker provider test (flutter/flutter#181697) 2026-02-24 engine-flutter-autoroll@skia.org Roll Skia from 26eebffe12bd to f44d7db68805 (3 revisions) (flutter/flutter#182821) 2026-02-24 34465683+rkishan516@users.noreply.github.com refactor: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (flutter/flutter#182697) 2026-02-24 engine-flutter-autoroll@skia.org Roll Skia from 7dad66aae75a to 26eebffe12bd (5 revisions) (flutter/flutter#182810) 2026-02-24 pokepsi@gmail.com Update roadmap for 2026 (flutter/flutter#182798) 2026-02-24 fluttergithubbot@gmail.com Marks Windows tool_tests_commands_1_2 to be unflaky (flutter/flutter#179670) 2026-02-23 zhongliu88889@gmail.com [web] scroll iOS iframe text input into view (flutter/flutter#179759) 2026-02-23 Mail@maikwild.de Fix textscaler clamp assertion error (flutter/flutter#181716) 2026-02-23 engine-flutter-autoroll@skia.org Roll Skia from 9a5a3c92c336 to 7dad66aae75a (4 revisions) (flutter/flutter#182779) 2026-02-23 116356835+AbdeMohlbi@users.noreply.github.com Move more getters from userMessages class to the appropriate places (flutter/flutter#182656) 2026-02-23 engine-flutter-autoroll@skia.org Manual roll Dart SDK from f8fac50475b8 to fd3dce5b6a4e (6 revisions) (flutter/flutter#182768) 2026-02-23 15619084+vashworth@users.noreply.github.com Copy Flutter framework to Add to App FlutterPluginRgistrant (flutter/flutter#182523) 2026-02-23 mr-peipei@web.de Add progress indicator to artifact downloads (flutter/flutter#181808) 2026-02-23 47866232+chunhtai@users.noreply.github.com Clarify batch release mode requirements (flutter/flutter#182228) 2026-02-23 mdebbar@google.com [web] Remove --disable-gpu from flutter chrome tests (flutter/flutter#182618) 2026-02-23 jwren@google.com running-apps: update running-apps to use Duration.ago() (flutter/flutter#182172) 2026-02-23 kevmoo@users.noreply.github.com Refactor bin/ shell scripts for better performance and safety (flutter/flutter#182674) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. ...
…r#182674) - Utilized native bash parameter expansion and file reading mechanisms like `$(< file)` instead of sub-shelling external invocations like `$(cat file)`. - Enforced path-safety across internal directory traversals by appending -- to cd and rm commands, insulating scripts against files/folders that might start with a hyphen. - Restructured chmod application using find -exec ... + to batch parameter arguments, bypassing the overhead of spinning up individual process instances per matched file. - Cleaned up control flow logic, replacing redundant $? and set +e manipulations with graceful || true fallback patterns and more idiomatic if list; then blocks.
…r#11116) Roll Flutter from dad6f9d4107a to b31548feb941 (39 revisions) flutter/flutter@dad6f9d...b31548f 2026-02-25 mdebbar@google.com [web] Fix failure on Firefox 148 (flutter/flutter#182855) 2026-02-25 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from KfPgw04T0OEADLJA5... to XI0Ax7fbtYE4XKYAQ... (flutter/flutter#182887) 2026-02-25 50643541+Mairramer@users.noreply.github.com Use AnimationStyle curve and reverseCurve in ModalBottomSheet animation (flutter/flutter#181403) 2026-02-25 engine-flutter-autoroll@skia.org Roll Dart SDK from fd3dce5b6a4e to 5c57e75f1102 (9 revisions) (flutter/flutter#182801) 2026-02-25 98614782+auto-submit[bot]@users.noreply.github.com Reverts "refactor: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (#182697)" (flutter/flutter#182879) 2026-02-25 ahmedsameha1@gmail.com Make sure that an AnimatedSlide doesn't crash in 0x0 environment (flutter/flutter#181535) 2026-02-24 jmccandless@google.com Reland Standardize on Test* widgets in *_tester.dart files (flutter/flutter#182632) 2026-02-24 nhan13574@gmail.com docs(Path): clarify that zero-length contours are excluded from computeMetrics (flutter/flutter#180165) 2026-02-24 mdebbar@google.com Fix typo in assert message (flutter/flutter#182843) 2026-02-24 matej.knopp@gmail.com [win32] Fix overflow in TaskRunnerWindow. (flutter/flutter#182822) 2026-02-24 abadasamuelosp@gmail.com feat: Add --no-uninstall flag to flutter test for integration tests (flutter/flutter#182714) 2026-02-24 74057391+jhonathanqz@users.noreply.github.com Rename noFrequencyBasedMinification to useFrequencyBasedMinification (flutter/flutter#182684) 2026-02-24 60122246+xiaowei-guan@users.noreply.github.com [Impeller] Fix fail to render pixel buffer texture on Linux (flutter/flutter#181656) 2026-02-24 15619084+vashworth@users.noreply.github.com Remove FlutterFramework app migration (flutter/flutter#182100) 2026-02-24 engine-flutter-autoroll@skia.org Roll Packages from 12b43a1 to 062c8d4 (5 revisions) (flutter/flutter#182839) 2026-02-24 mdebbar@google.com [web] Run webparagraph tests in CI (flutter/flutter#182092) 2026-02-24 jason-simmons@users.noreply.github.com Fix a race in EmbedderTest.CanSpecifyCustomUITaskRunner (flutter/flutter#182649) 2026-02-24 srawlins@google.com flutter_tools: Use a super-parameter in several missed cases (flutter/flutter#182581) 2026-02-24 116356835+AbdeMohlbi@users.noreply.github.com Replace more references to `flutter/engine` with `flutter/flutter` (flutter/flutter#182654) 2026-02-24 50643541+Mairramer@users.noreply.github.com Carousel: Migration from Scrollable+Viewport to CustomScrollView (flutter/flutter#182475) 2026-02-24 97480502+b-luk@users.noreply.github.com Refactor impellerc_main to better organize some of its logic (flutter/flutter#182783) 2026-02-24 116356835+AbdeMohlbi@users.noreply.github.com Remove unused `getPluginList ` (flutter/flutter#182660) 2026-02-24 34465683+rkishan516@users.noreply.github.com Refactor: Remove material from ticker provider test (flutter/flutter#181697) 2026-02-24 engine-flutter-autoroll@skia.org Roll Skia from 26eebffe12bd to f44d7db68805 (3 revisions) (flutter/flutter#182821) 2026-02-24 34465683+rkishan516@users.noreply.github.com refactor: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (flutter/flutter#182697) 2026-02-24 engine-flutter-autoroll@skia.org Roll Skia from 7dad66aae75a to 26eebffe12bd (5 revisions) (flutter/flutter#182810) 2026-02-24 pokepsi@gmail.com Update roadmap for 2026 (flutter/flutter#182798) 2026-02-24 fluttergithubbot@gmail.com Marks Windows tool_tests_commands_1_2 to be unflaky (flutter/flutter#179670) 2026-02-23 zhongliu88889@gmail.com [web] scroll iOS iframe text input into view (flutter/flutter#179759) 2026-02-23 Mail@maikwild.de Fix textscaler clamp assertion error (flutter/flutter#181716) 2026-02-23 engine-flutter-autoroll@skia.org Roll Skia from 9a5a3c92c336 to 7dad66aae75a (4 revisions) (flutter/flutter#182779) 2026-02-23 116356835+AbdeMohlbi@users.noreply.github.com Move more getters from userMessages class to the appropriate places (flutter/flutter#182656) 2026-02-23 engine-flutter-autoroll@skia.org Manual roll Dart SDK from f8fac50475b8 to fd3dce5b6a4e (6 revisions) (flutter/flutter#182768) 2026-02-23 15619084+vashworth@users.noreply.github.com Copy Flutter framework to Add to App FlutterPluginRgistrant (flutter/flutter#182523) 2026-02-23 mr-peipei@web.de Add progress indicator to artifact downloads (flutter/flutter#181808) 2026-02-23 47866232+chunhtai@users.noreply.github.com Clarify batch release mode requirements (flutter/flutter#182228) 2026-02-23 mdebbar@google.com [web] Remove --disable-gpu from flutter chrome tests (flutter/flutter#182618) 2026-02-23 jwren@google.com running-apps: update running-apps to use Duration.ago() (flutter/flutter#182172) 2026-02-23 kevmoo@users.noreply.github.com Refactor bin/ shell scripts for better performance and safety (flutter/flutter#182674) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. ...

Utilized native bash parameter expansion and file reading mechanisms like
$(< file)instead of sub-shelling external invocations like$(cat file).Enforced path-safety across internal directory traversals by appending -- to cd and rm commands, insulating scripts against files/folders that might start with a hyphen.
Restructured chmod application using find -exec ... + to batch parameter arguments, bypassing the overhead of spinning up individual process instances per matched file.
Cleaned up control flow logic, replacing redundant $? and set +e manipulations with graceful || true fallback patterns and more idiomatic if list; then blocks.