run method

String run()

Implementation

String run() {
  existingVarNames = {};

  String result = "";
  List<String> varStringList = [];
  List<String> sortedFilePaths = [...filePaths];
  sortedFilePaths.sort((a, b) {
    String pathA = a.replaceAll("assets", "");
    String pathB = b.split(" = ").first.replaceAll(staticConstString, "");
    // result < 0, [pathA, pathB]
    // result > 0, [pathB, pathA]
    // result = 0, [pathA, pathB]
    final result = pathA.compareTo(pathB);
    return result;
  });
  for (String ps in sortedFilePaths) {
    // 判断是否有排除的路径
    if (ps.startsWith('.') || ps.split("/").last.startsWith('.')) {
      print("$ps Path noncompliance");
      continue;
    }
    if (isExcludePath(ps) || !isIncludePath(ps)) {
      // print("$ps is exclude path");
      continue;
    }

    String varString = generateOneLine(path: ps);
    varStringList.add(varString);
  }

  // 排序 filePaths
  varStringList.sort((a, b) {
    String pathA = a.split(" = ").first.replaceAll(staticConstString, "");
    String pathB = b.split(" = ").first.replaceAll(staticConstString, "");
    return pathA.compareTo(pathB);
  });
  String varResultString = varStringList.join("\n");

  String className = config.className ?? "Assets";
  result +=
      "///This file is automatically generated. DO NOT EDIT, all your changes would be lost.\n";
  result += "class $className {\n";
  result += "  $className._();\n";
  result += "\n";
  result += varResultString;
  result += "\n";
  result += "}\n";
  return result;
}