generateImageResources function
void
generateImageResources({})
Implementation
void generateImageResources({
required String input,
required String output,
String? package,
String? flavor,
}) {
Logger.verboseLog('Generating image resources...');
final directory = Directory(input);
if (!directory.existsSync()) {
Logger.verboseLog('images/ 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}_'}image_resources = (
""");
final files = directory.listSync().where((e) {
return e is File &&
[
'.png',
'.jpg',
'.jpeg',
'.bmp',
'.gif',
'.webp',
'.tif',
'.tiff',
'.heic',
'.heif',
'.raw',
'.ico',
].contains(extension(e.unixPath)) &&
!e.isHidden;
}).toList()
..sort(sortFilesByName);
for (final file in files) {
final relativePath = getRelativePath(
file.absolute.unixPath,
getCurrentPath(),
);
final fullPath =
(package == null ? '' : 'packages/$package/') + relativePath;
buffer.writeln(
" ${safeName(basenameWithoutExtension(file.unixPath))}: '$fullPath',",
);
}
buffer.writeln(');');
Directory(join(output, flavor)).createSync(recursive: true);
File(joinAll([output, flavor, 'image_resources.dart'].whereType<String>()))
..createSync()
..writeAsStringSync(buffer.toString());
Logger.verboseLog('Generated image resources!');
}