build method

Future<void> build()

Implementation

Future<void> build() async {
  Config config;
  try {
    config = await loadPubspecConfig(pubspecFile);
  } on InvalidSettingsException catch (e) {
    stderr.writeln(e.message);
    return;
  } on FileSystemException catch (e) {
    stderr.writeln(e.message);
    return;
  }

  final output = config.flutterGen.output;
  final lineLength = config.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 (config.flutterGen.colors.enabled &&
      config.flutterGen.colors.inputs.isNotEmpty) {
    final generated =
        generateColors(pubspecFile, formatter, config.flutterGen.colors);
    final colors =
        File(normalize(join(pubspecFile.parent.path, output, colorsName)));
    writeAsString(generated, file: colors);
    print('Generated: ${colors.absolute.path}');
  }

  if (config.flutterGen.assets.enabled && config.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);
    print('Generated: ${assets.absolute.path}');
  }

  if (config.flutterGen.fonts.enabled && config.flutter.fonts.isNotEmpty) {
    final generated = generateFonts(formatter, config.flutter.fonts);
    final fonts =
        File(normalize(join(pubspecFile.parent.path, output, fontsName)));
    writeAsString(generated, file: fonts);
    print('Generated: ${fonts.absolute.path}');
  }

  print('FlutterGen finished.');
}