From 8d2566b43440309d6737e1dfefbe0589b4a34017 Mon Sep 17 00:00:00 2001 From: Christopher Vogt Date: Sun, 13 Nov 2016 14:36:54 -0500 Subject: Assert right build class. Fixes #174 --- stage2/BasicBuild.scala | 11 ++++++++++- stage2/BuildBuild.scala | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'stage2') diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala index d8d1b8b..3ce9ed1 100644 --- a/stage2/BasicBuild.scala +++ b/stage2/BasicBuild.scala @@ -18,8 +18,17 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with Trigge def enableConcurrency = false final def projectDirectory: File = lib.realpath(context.projectDirectory) assert( projectDirectory.exists, "projectDirectory does not exist: " ++ projectDirectory.string ) + assert( + projectDirectory.getName =!= "build" || + { + def transitiveInterfaces(cls: Class[_]): Vector[Class[_]] = cls.getInterfaces.toVector.flatMap(i => i +: transitiveInterfaces(i)) + transitiveInterfaces(this.getClass).contains(classOf[BuildBuildWithoutEssentials]) + }, + "You need to extend BuildBuild in: " + projectDirectory + "/build" + ) + final def usage: String = lib.usage(this.getClass, show) - + final def taskNames: String = lib.taskNames(this.getClass).sorted.mkString("\n") // ========== meta data ========== diff --git a/stage2/BuildBuild.scala b/stage2/BuildBuild.scala index 5eb7622..0736e7e 100644 --- a/stage2/BuildBuild.scala +++ b/stage2/BuildBuild.scala @@ -6,6 +6,11 @@ trait BuildBuild extends BuildBuildWithoutEssentials{ super.dependencies :+ plugins.essentials } trait BuildBuildWithoutEssentials extends BaseBuild{ + assert( + projectDirectory.getName === "build", + "You can't extend BuildBuild in: " + projectDirectory + "/build" + ) + protected final val managedContext = context.copy( projectDirectory = managedBuildDirectory, parentBuild=Some(this) -- cgit v1.2.3