mainAssets function
Implementation
void mainAssets(List<String> oldArg) async {
var ymlData = await getYmlData();
var classFileName = "AssetsData";
List<String> excludeList = [];
if (oldArg.length > 1) {
classFileName = oldArg[1];
excludeList = oldArg.sublist(2);
}
if (ymlData.isEmpty) {
return;
}
YamlList? assetsPath = ymlData["flutter"]["assets"];
if (assetsPath == null || assetsPath.isEmpty) {
print(
"assets not found in pubspec.yaml",
);
return;
}
var assetsList = "";
for (var e in assetsPath) {
if (!excludeList.contains(e)) {
var dir = Directory(e);
var dd = await dir.list().toList();
for (var e in dd) {
var fileName =
toCamelCaseAvoidKeywords(basenameWithoutExtension(e.path));
assetsList += " static const String $fileName ='${e.path}';\n";
}
}
}
var finalFolder = "lib/utils/${toSnakeCase(classFileName)}.dart";
createFile(
finalFolder,
''' class $classFileName{
$classFileName._();
$assetsList
}''',
);
print(
"Assets created in $finalFolder",
);
}