in bunch-cli/src/main/kotlin/org/jetbrains/bunches/stats.kt [106:144]
fun doLsStats(path: String) {
val (statsDir, gitRoot) = fetchStatsDirs(path)
val extensions = readExtensionsFromFile(gitRoot).resultWithExit()
val gitignoreParseResult = parseGitIgnore(gitRoot)
var count = 0
var total = 0
statsDir
.walkTopDown()
.onEnter { dir ->
val ignoreDir = shouldIgnoreDir(dir, gitRoot, gitignoreParseResult)
if (ignoreDir) {
val lsName = printLSDirName(dir, statsDir)
if (lsName != null) {
println("%6s %s".format("ignore", lsName))
count = 0
}
}
!ignoreDir
}
.onLeave { dir ->
val lsName = printLSDirName(dir, statsDir)
if (lsName != null) {
println("%6d %s".format(count, lsName))
count = 0
}
}
.onEach { child ->
if (child.extension in extensions) {
count++
total++
}
}.forEach { _ -> }
println()
println("Total: $total")
}