You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by dj...@apache.org on 2009/06/15 21:59:17 UTC

svn commit: r784955 - in /buildr/trunk/lib/buildr/scala/org: ./ apache/ apache/buildr/ apache/buildr/SpecsSingletonRunner$.class apache/buildr/SpecsSingletonRunner.class apache/buildr/SpecsSingletonRunner.scala

Author: djspiewak
Date: Mon Jun 15 19:59:17 2009
New Revision: 784955

URL: http://svn.apache.org/viewvc?rev=784955&view=rev
Log:
Added custom Specs runner utility

Added:
    buildr/trunk/lib/buildr/scala/org/
    buildr/trunk/lib/buildr/scala/org/apache/
    buildr/trunk/lib/buildr/scala/org/apache/buildr/
    buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner$.class
    buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class
    buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala

Added: buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner$.class
URL: http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner%24.class?rev=784955&view=auto
==============================================================================
Files buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner$.class (added) and buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner$.class Mon Jun 15 19:59:17 2009 differ

Added: buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class
URL: http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class?rev=784955&view=auto
==============================================================================
Files buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class (added) and buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class Mon Jun 15 19:59:17 2009 differ

Added: buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala
URL: http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala?rev=784955&view=auto
==============================================================================
--- buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala (added)
+++ buildr/trunk/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala Mon Jun 15 19:59:17 2009
@@ -0,0 +1,33 @@
+package org.apache.buildr
+
+import java.net.{URL, URLClassLoader}
+import java.io.File
+
+/**
+ * @author Daniel Spiewak
+ */
+object SpecsSingletonRunner {
+  type Spec = { def main(args: Array[String]) }
+  
+  @throws(classOf[Throwable])
+  def main(args: Array[String]) {
+    val (colors, spec) = if (args.length > 1 && args(1) == "-c")
+      (true, args(2))
+    else
+      (false, args(1))
+    
+    run(args(0), colors, spec)
+  }
+  
+  @throws(classOf[Throwable])
+  def run(path: String, colors: Boolean, spec: String) = {
+    val parent = new File(path)
+    val specURL = new File(parent, spec.replace('.', '/') + ".class").toURL
+    val loader = new URLClassLoader(Array(specURL), getClass.getClassLoader)
+    
+    val clazz = loader.loadClass(spec)
+    val instance = clazz.getField("MODULE$").get(null).asInstanceOf[Spec]
+    
+    instance.main(if (colors) Array("-c") else Array())
+  }
+}