@@ -15,23 +15,46 @@ class Config {
15
15
final File pubspecFile;
16
16
}
17
17
18
- Config loadPubspecConfig (File pubspecFile) {
19
- stdout.writeln ('$flutterGenVersion Loading ... '
20
- '${normalize (join (
21
- basename (pubspecFile .parent .path ),
22
- basename (pubspecFile .path ),
23
- ))}' );
24
- final content = pubspecFile.readAsStringSync ();
25
- final userMap = loadYaml (content) as Map ? ;
18
+ Config loadPubspecConfig (File pubspecFile, {File ? buildFile}) {
19
+ final pubspecLocaleHint = normalize (
20
+ join (basename (pubspecFile.parent.path), basename (pubspecFile.path)),
21
+ );
22
+ final buildLocaleHint = buildFile != null && buildFile.existsSync ()
23
+ ? ', ${normalize (
24
+ join (basename (buildFile .parent .path ), basename (buildFile .path )),
25
+ )} '
26
+ : '' ;
27
+
28
+ stdout.writeln (
29
+ '$flutterGenVersion Loading ... $pubspecLocaleHint $buildLocaleHint ' ,
30
+ );
31
+
26
32
final defaultMap = loadYaml (configDefaultYamlContent) as Map ? ;
27
- final mergedMap = mergeMap ([defaultMap, userMap]);
33
+
34
+ final pubspecContent = pubspecFile.readAsStringSync ();
35
+ final pubspecMap = loadYaml (pubspecContent) as Map ? ;
36
+
37
+ var mergedMap = mergeMap ([defaultMap, pubspecMap]);
38
+
39
+ if (buildFile != null && buildFile.existsSync ()) {
40
+ final buildContent = buildFile.readAsStringSync ();
41
+ final rawMap = loadYaml (buildContent) as Map ? ;
42
+ final optionBuildMap = rawMap? ['targets' ]? [r'$default' ]? ['builders' ]
43
+ ? ['flutter_gen' ]? ['options' ];
44
+
45
+ if (optionBuildMap != null ) {
46
+ final buildMap = {'flutter_gen' : optionBuildMap};
47
+ mergedMap = mergeMap ([mergedMap, buildMap]);
48
+ }
49
+ }
50
+
28
51
final pubspec = Pubspec .fromJson (mergedMap);
29
52
return Config ._(pubspec: pubspec, pubspecFile: pubspecFile);
30
53
}
31
54
32
- Config ? loadPubspecConfigOrNull (File pubspecFile) {
55
+ Config ? loadPubspecConfigOrNull (File pubspecFile, { File ? buildFile} ) {
33
56
try {
34
- return loadPubspecConfig (pubspecFile);
57
+ return loadPubspecConfig (pubspecFile, buildFile : buildFile );
35
58
} on FileSystemException catch (e) {
36
59
stderr.writeln (e.message);
37
60
} on InvalidSettingsException catch (e) {
0 commit comments