Delete stale package_config.json in gclient sync hook (#57195)
On the bots there were old and stale `package_config.json` files hanging around that confuse the `dart format` command. This PR adds a step to the `pub_get_offline.py` glcient sync hook to delete all of these files that are not under version control.
diff --git a/tools/pub_get_offline.py b/tools/pub_get_offline.py
index 2bf6b8a..154c08e 100644
--- a/tools/pub_get_offline.py
+++ b/tools/pub_get_offline.py
@@ -127,6 +127,17 @@
return unlisted
+def delete_config_files():
+ # Find all package_config.json that are not under version control.
+ gitcmd = ['git', 'ls-files', '-o', '**/.dart_tool/package_config.json']
+ files_to_delete = subprocess.check_output(
+ gitcmd, cwd=ENGINE_DIR, stderr=subprocess.STDOUT, text=True
+ ).splitlines()
+ for file in files_to_delete:
+ print('Deleting %s...' % file)
+ os.remove(os.path.join(ENGINE_DIR, file))
+
+
def main():
# Intentionally use the Dart SDK prebuilt instead of the Flutter prebuilt
# (i.e. prebuilts/{platform}/dart-sdk/bin/dart) because the script has to run
@@ -135,6 +146,10 @@
SRC_ROOT, 'flutter', 'third_party', 'dart', 'tools', 'sdks', 'dart-sdk', 'bin'
)
+ # Delete all package_config.json files. These may be stale.
+ # Required ones will be regenerated fresh below.
+ delete_config_files()
+
# Ensure all relevant packages are listed in ALL_PACKAGES.
unlisted = find_unlisted_packages()
if len(unlisted) > 0: