fun doDirStats()

in bunch-cli/src/main/kotlin/org/jetbrains/bunches/stats.kt [86:104]


fun doDirStats(path: String) {
    val (statsDir, gitRoot) = fetchStatsDirs(path)
    val extensions = readExtensionsFromFile(gitRoot).resultWithExit()

    val gitignoreParseResult = parseGitIgnore(gitRoot)

    val bunchFiles = statsDir
        .walkTopDown()
        .onEnter { dir -> !shouldIgnoreDir(dir, gitRoot, gitignoreParseResult) }
        .filter { child -> child.extension in extensions }
        .toList()

    val groupedFiles = bunchFiles.groupBy { it.extension }

    val affectedOriginFiles: Set<File> =
        bunchFiles.mapTo(HashSet()) { child -> File(child.parentFile, child.nameWithoutExtension) }

    printDirResults(statsDir, affectedOriginFiles, bunchFiles, extensions, groupedFiles)
}