diff options
Diffstat (limited to 'stage2/Lib.scala')
-rw-r--r-- | stage2/Lib.scala | 9 |
1 files changed, 9 insertions, 0 deletions
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 ){ |