build method
Implementation
Future<void> build({Config? config}) async {
config ??= await getConfig();
if (config == null) return;
final flutter = config.pubspec.flutter;
final flutterGen = config.pubspec.flutterGen;
final output = config.pubspec.flutterGen.output;
final lineLength = config.pubspec.flutterGen.lineLength;
final formatter = DartFormatter(pageWidth: lineLength, lineEnding: '\n');
final absoluteOutput =
Directory(normalize(join(pubspecFile.parent.path, output)));
if (!absoluteOutput.existsSync()) {
absoluteOutput.createSync(recursive: true);
}
if (flutterGen.colors.enabled && flutterGen.colors.inputs.isNotEmpty) {
final generated =
generateColors(pubspecFile, formatter, flutterGen.colors);
final colors =
File(normalize(join(pubspecFile.parent.path, output, colorsName)));
writeAsString(generated, file: colors);
stdout.writeln('Generated: ${colors.absolute.path}');
}
if (flutterGen.assets.enabled && flutter.assets.isNotEmpty) {
final generated = generateAssets(
AssetsGenConfig.fromConfig(pubspecFile, config),
formatter,
);
final assets =
File(normalize(join(pubspecFile.parent.path, output, assetsName)));
writeAsString(generated, file: assets);
stdout.writeln('Generated: ${assets.absolute.path}');
}
if (flutterGen.fonts.enabled && flutter.fonts.isNotEmpty) {
final generated = generateFonts(formatter, flutter.fonts);
final fonts =
File(normalize(join(pubspecFile.parent.path, output, fontsName)));
writeAsString(generated, file: fonts);
stdout.writeln('Generated: ${fonts.absolute.path}');
}
stdout.writeln('FlutterGen finished.');
}