Skip to content

Commit 3b390c5

Browse files
authored
Add a --no-gradle-generation mode to the generate_gradle_lockfiles.dart script (#145568)
The script currently overwrites existing `settings.gradle`, `build.gradle`, and `gradle-wrapper.properties` files in the directories it processes. This mode makes it not do that, and just generate the lockfiles themselves. Related to flutter/flutter#145564 (comment)
1 parent a36569d commit 3b390c5

File tree

1 file changed

+32
-8
lines changed

1 file changed

+32
-8
lines changed

dev/tools/bin/generate_gradle_lockfiles.dart

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,38 @@
88

99
import 'dart:io';
1010

11+
import 'package:args/args.dart';
1112
import 'package:file/file.dart';
1213
import 'package:file/local.dart';
1314
import 'package:path/path.dart' as path;
1415

1516
void main(List<String> arguments) {
16-
print(
17-
"Usage: find . -type d -name 'android' | dart dev/tools/bin/generate_gradle_lockfiles.dart\n"
18-
'If you would rather enter the files manually, just run `dart dev/tools/bin/generate_gradle_lockfiles.dart`,\n'
19-
"enter the absolute paths to the app's android directory, then press CTRL-D.\n"
20-
);
17+
const String usageMessage = "Usage: find . -type d -name 'android' | dart dev/tools/bin/generate_gradle_lockfiles.dart\n"
18+
'If you would rather enter the files manually, just run `dart dev/tools/bin/generate_gradle_lockfiles.dart`,\n'
19+
"enter the absolute paths to the app's android directory, then press CTRL-D.\n"
20+
"If you don't wish to re-generate the settings.gradle, build.gradle, and gradle-wrapper.properties files,\n"
21+
"add the flag '--no-gradle-generation'";
22+
23+
final ArgParser argParser = ArgParser()
24+
..addFlag(
25+
'gradle-generation',
26+
help: 'Re-generate gradle files in each processed directory.',
27+
defaultsTo: true,
28+
);
29+
30+
ArgResults args;
31+
try {
32+
args = argParser.parse(arguments);
33+
} on FormatException catch (error) {
34+
stderr.writeln('${error.message}\n');
35+
stderr.writeln(usageMessage);
36+
exit(1);
37+
}
38+
39+
print(usageMessage);
40+
41+
/// Re-generate gradle files in each processed directory.
42+
final bool gradleGeneration = (args['gradle-generation'] as bool?) ?? true;
2143

2244
const FileSystem fileSystem = LocalFileSystem();
2345
final List<String> androidDirectories = getFilesFromStdin();
@@ -86,9 +108,11 @@ void main(List<String> arguments) {
86108
// noop
87109
}
88110

89-
rootBuildGradle.writeAsStringSync(rootGradleFileContent);
90-
settingsGradle.writeAsStringSync(settingGradleFile);
91-
wrapperGradle.writeAsStringSync(wrapperGradleFileContent);
111+
if (gradleGeneration) {
112+
rootBuildGradle.writeAsStringSync(rootGradleFileContent);
113+
settingsGradle.writeAsStringSync(settingGradleFile);
114+
wrapperGradle.writeAsStringSync(wrapperGradleFileContent);
115+
}
92116

93117
final String appDirectory = androidDirectory.parent.absolute.path;
94118

0 commit comments

Comments
 (0)