From 1b2e25991fdf61d996277eae8890ba53d97085e5 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Mon, 27 Mar 2017 15:14:06 -0700 Subject: [PATCH] Silly file was being gitignored. --- .../kobalt/internal/build/BuildSources.kt | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/build/BuildSources.kt diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/build/BuildSources.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/build/BuildSources.kt new file mode 100644 index 00000000..9b3d6e89 --- /dev/null +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/build/BuildSources.kt @@ -0,0 +1,55 @@ +package com.beust.kobalt.internal.build + +import com.beust.kobalt.homeDir +import java.io.File +import java.nio.file.* +import java.nio.file.attribute.BasicFileAttributes + +interface IBuildSources { + fun findSourceFiles() : List + val root: File + fun exists(): Boolean +} + +class SingleFileBuildSources(val file: File) : IBuildSources { + override fun exists() = file.exists() + override fun findSourceFiles() = listOf(file) + override val root: File = file.parentFile.parentFile +} + +class BuildSources(val file: File) : IBuildSources { + + override val root = file + + override fun findSourceFiles() : List { + return listOf(/* "kobalt/src/a.kt", */ "kobalt/src/Build.kt") + .map(::File) +// .map { BuildFile(Paths.get(it), it)} + } + + override fun exists() = findSourceFiles().isNotEmpty() + + fun _findSourceFiles() : List { + val result = arrayListOf() + Files.walkFileTree(Paths.get(file.absolutePath), object : SimpleFileVisitor() { + override fun preVisitDirectory(dir: Path?, attrs: BasicFileAttributes?): FileVisitResult { + if (dir != null) { + val path = dir.toFile() + println(path.name) + if (path.name == "src" && path.parentFile.name == "kobalt") { + val sources = path.listFiles().filter { it.name.endsWith(".kt")} + result.addAll(sources) + } + } + + return FileVisitResult.CONTINUE + } + }) + return result + } +} + +fun main(args: Array) { + val sources = BuildSources(File(homeDir("kotlin/kobalt"))).findSourceFiles() + println("sources: " + sources) +} \ No newline at end of file