Browse Source

Check web tutorials as well

pull/723/head
Nikolay Igotti 3 years ago
parent
commit
1f039ab310
  1. 57
      tutorials/checker/build.gradle.kts

57
tutorials/checker/build.gradle.kts

@ -8,27 +8,28 @@ data class SnippetData(
fun findSnippets(dirs: List<String>): List<SnippetData> { fun findSnippets(dirs: List<String>): List<SnippetData> {
val snippets = mutableListOf<SnippetData>() val snippets = mutableListOf<SnippetData>()
dirs.forEach { dirName -> dirs.forEach { dirName ->
rootProject val dir = rootProject
.projectDir .projectDir
.parentFile .parentFile
.resolve(dirName) .resolve(dirName)
.listFiles() .listFiles()?.let {
.filter { it.name.endsWith(".md") } it.filter { it.name.endsWith(".md") }
.forEach { file -> .forEach { file ->
val currentSnippet = kotlin.text.StringBuilder() val currentSnippet = kotlin.text.StringBuilder()
var snippetStart = 0 var snippetStart = 0
var lineNumber = 0 var lineNumber = 0
file.forEachLine { line -> file.forEachLine { line ->
lineNumber++ lineNumber++
if (line == "```kotlin") if (line == "```kotlin")
snippetStart = lineNumber + 1 snippetStart = lineNumber + 1
else if (line == "```" && snippetStart != 0) { else if (line == "```" && snippetStart != 0) {
snippets.add(SnippetData(file, snippetStart, currentSnippet.toString())) snippets.add(SnippetData(file, snippetStart, currentSnippet.toString()))
snippetStart = 0 snippetStart = 0
currentSnippet.clear() currentSnippet.clear()
} else { } else {
if (snippetStart != 0) { if (snippetStart != 0) {
currentSnippet.appendln(line) currentSnippet.appendln(line)
}
} }
} }
} }
@ -78,13 +79,17 @@ fun checkDirs(dirs: List<String>) {
// with whitespace marks code that shall not be checked. // with whitespace marks code that shall not be checked.
tasks.register("check") { tasks.register("check") {
doLast { doLast {
val dirs = project for (dir in listOf(".", "Web")) {
.projectDir val subdirs = project
.parentFile .projectDir
.listFiles() .parentFile
.filter { .resolve(dir)
it.isDirectory && it.name[0].isUpperCase() } .listFiles()
.map { it.name } .filter {
checkDirs(dirs) it.isDirectory && it.name[0].isUpperCase()
}
.map { it.name }
checkDirs(subdirs.map { "$dir/$it" })
}
} }
} }

Loading…
Cancel
Save