mainAssets function

void mainAssets(
  1. List<String> oldArg
)

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",
  );
}