generateColorResources function

void generateColorResources({
  1. required String input,
  2. required String output,
  3. String? package,
  4. String? flavor,
})

Implementation

void generateColorResources({
  required String input,
  required String output,
  String? package,
  String? flavor,
}) {
  Logger.verboseLog('Generating color resources...');
  final directory = Directory(input);
  if (!directory.existsSync()) {
    Logger.verboseLog('colors/ folder is not exist. Skipping...');
    return;
  }
  final buffer = StringBuffer("""
// ignore_for_file: non_constant_identifier_names, constant_identifier_names
part of '${flavor == null ? '' : '../'}resources.dart';

const _${flavor == null ? '' : '${flavor}_'}color_resources = (
""");
  try {
    final files = directory
        .listSync()
        .where((fs) {
          return fs is File &&
              extension(fs.unixPath) == '.json' &&
              !fs.isHidden &&
              basenameWithoutExtension(fs.unixPath).startsWith('colors');
        })
        .cast<File>()
        .toList()
      ..sort(sortFilesByName);
    if (files.length == 1) {
      _writeColorsSingle(files.first, buffer);
    } else if (files.length > 1) {
      _writeColorsMultiple(files, buffer);
    }
  } catch (_) {}
  buffer.writeln(');');
  Directory(join(output, flavor)).createSync(recursive: true);
  File(joinAll([output, flavor, 'color_resources.dart'].whereType<String>()))
    ..createSync()
    ..writeAsStringSync(buffer.toString());
  Logger.verboseLog('Generated color resources!');
}