diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2016-04-27 09:34:52 -0400 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2016-04-28 13:34:01 -0400 |
commit | 74ddcf55ccf0fb4c87b4b0ea06f95a6a419f262f (patch) | |
tree | 090030387bdfdb407e6e7430eaccf08dc9d11525 /stage2 | |
parent | 63d1076783f3d39876c829108c335661948010b5 (diff) | |
download | cbt-74ddcf55ccf0fb4c87b4b0ea06f95a6a419f262f.tar.gz cbt-74ddcf55ccf0fb4c87b4b0ea06f95a6a419f262f.tar.bz2 cbt-74ddcf55ccf0fb4c87b4b0ea06f95a6a419f262f.zip |
move soure file filterin logic into library for reusability
Diffstat (limited to 'stage2')
-rw-r--r-- | stage2/BasicBuild.scala | 10 | ||||
-rw-r--r-- | stage2/Lib.scala | 9 |
2 files changed, 11 insertions, 8 deletions
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala index 9f9dbdc..46f9d5a 100644 --- a/stage2/BasicBuild.scala +++ b/stage2/BasicBuild.scala @@ -63,16 +63,10 @@ class Build(val context: Context) extends Dependency with TriggerLoop with SbtDe def compileStatusFile: File = compileTarget ++ ".last-success" /** Source directories and files. Defaults to .scala and .java files in src/ and top-level. */ - def sources: Seq[File] = Seq(defaultSourceDirectory) ++ projectDirectory.listFiles.toVector.filter(sourceFileFilter) - - /** Which file endings to consider being source files. */ - def sourceFileFilter(file: File): Boolean = file.toString.endsWith(".scala") || file.toString.endsWith(".java") + def sources: Seq[File] = Seq(defaultSourceDirectory) ++ projectDirectory.listFiles.toVector.filter(lib.sourceFileFilter) /** Absolute path names for all individual files found in sources directly or contained in directories. */ - final def sourceFiles: Seq[File] = for { - base <- sources.filter(_.exists).map(lib.realpath) - file <- lib.listFilesRecursive(base) if file.isFile && sourceFileFilter(file) - } yield file + final def sourceFiles: Seq[File] = lib.sourceFiles(sources) protected def assertSourceDirectories(): Unit = { val nonExisting = diff --git a/stage2/Lib.scala b/stage2/Lib.scala index 6894073..3c5ff3a 100644 --- a/stage2/Lib.scala +++ b/stage2/Lib.scala @@ -209,6 +209,15 @@ final class Lib(logger: Logger) extends Stage1Lib(logger) with Scaffold{ def basename(path: File): String = path.toString.stripSuffix("/").split("/").last def dirname(path: File): File = new File(realpath(path).string.stripSuffix("/").split("/").dropRight(1).mkString("/")) def nameAndContents(file: File) = basename(file) -> readAllBytes(Paths.get(file.toString)) + /** Which file endings to consider being source files. */ + def sourceFileFilter(file: File): Boolean = file.toString.endsWith(".scala") || file.toString.endsWith(".java") + + def sourceFiles( sources: Seq[File], sourceFileFilter: File => Boolean = sourceFileFilter ): Seq[File] = { + for { + base <- sources.filter(_.exists).map(lib.realpath) + file <- lib.listFilesRecursive(base) if file.isFile && sourceFileFilter(file) + } yield file + } def jarFile( jarFile: File, files: Seq[File] ): Option[File] = { if( files.isEmpty ){ |