aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-03-19 19:52:56 -0400
committerChristopher Vogt <oss.nsp@cvogt.org>2017-03-19 21:57:55 -0400
commit5388bb116834196e1b0a9bd9f2622f36e842b3be (patch)
tree468ba146c0417cca2b12d1924bcf84cabffc3646
parentbb409cc1701b83a3335902789cb4309b64d4e26e (diff)
downloadcbt-5388bb116834196e1b0a9bd9f2622f36e842b3be.tar.gz
cbt-5388bb116834196e1b0a9bd9f2622f36e842b3be.tar.bz2
cbt-5388bb116834196e1b0a9bd9f2622f36e842b3be.zip
better error than NullPointerException when directory does not exist
-rw-r--r--build/build.scala2
-rw-r--r--stage1/Stage1.scala4
-rw-r--r--stage1/cbt.scala1
-rw-r--r--stage2/BasicBuild.scala4
-rw-r--r--stage2/Lib.scala2
5 files changed, 7 insertions, 6 deletions
diff --git a/build/build.scala b/build/build.scala
index 141b0a4..496acdc 100644
--- a/build/build.scala
+++ b/build/build.scala
@@ -17,5 +17,5 @@ class Build(val context: Context) extends Shared with PublishLocal{
override def sources = Seq(
"nailgun_launcher", "stage1", "stage2", "compatibility"
- ).map( projectDirectory / _ ).flatMap( _.listFiles )
+ ).map( projectDirectory / _ ).flatMap( _.listOrFail )
}
diff --git a/stage1/Stage1.scala b/stage1/Stage1.scala
index 62cab87..c243cc0 100644
--- a/stage1/Stage1.scala
+++ b/stage1/Stage1.scala
@@ -92,8 +92,8 @@ object Stage1{
val stage2sourceFiles = (
stage2.listFiles
- ++ (stage2 / "plugins").listFiles
- ++ (cbtHome / "libraries" / "eval").listFiles
+ ++ (stage2 / "plugins").listOrFail
+ ++ (cbtHome / "libraries" / "eval").listOrFail
).filter(_.isFile).filter(_.toString.endsWith(".scala"))
val cls = this.getClass.getClassLoader.loadClass("cbt.NailgunLauncher")
diff --git a/stage1/cbt.scala b/stage1/cbt.scala
index b97ad44..8cba9df 100644
--- a/stage1/cbt.scala
+++ b/stage1/cbt.scala
@@ -62,6 +62,7 @@ object `package`{
file.delete
}
+ def listOrFail: Seq[File] = Option( file.listFiles ).getOrElse( throw new Exception( "no such file: " + file ) ).toVector
def listRecursive: Seq[File] = {
file +: (
if( file.isDirectory ) file.listFiles.flatMap(_.listRecursive).toVector else Seq[File]()
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala
index 491cdba..fcda629 100644
--- a/stage2/BasicBuild.scala
+++ b/stage2/BasicBuild.scala
@@ -96,7 +96,7 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with SbtDep
def sources: Seq[File] = (
Seq(defaultSourceDirectory)
++ generatedSources
- ++ projectDirectory.listFiles.toVector.filter(sourceFileFilter)
+ ++ projectDirectory.listOrFail.toVector.filter(sourceFileFilter)
)
/** Which file endings to consider being source files. */
@@ -130,7 +130,7 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with SbtDep
def localJars: Seq[File] =
Seq(projectDirectory ++ "/lib")
.filter(_.exists)
- .flatMap(_.listFiles)
+ .flatMap(_.listOrFail)
.filter(_.toString.endsWith(".jar"))
override def dependencyClasspath : ClassPath = super.dependencyClasspath
diff --git a/stage2/Lib.scala b/stage2/Lib.scala
index bb59604..04e68f1 100644
--- a/stage2/Lib.scala
+++ b/stage2/Lib.scala
@@ -202,7 +202,7 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){
def depthFirstFileStream(file: File): Vector[File] = {
(
if (file.isDirectory) {
- file.listFiles.toVector.flatMap(depthFirstFileStream(_))
+ file.listOrFail.toVector.flatMap(depthFirstFileStream(_))
} else Vector()
) :+ file
}