aboutsummaryrefslogtreecommitdiff
path: root/stage1
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-02-14 00:12:22 -0500
committerChristopher Vogt <oss.nsp@cvogt.org>2017-02-14 00:34:48 -0500
commit349e4b3546973a30f2823fa5461767322a606d9a (patch)
tree4db5a331fc4c1d39bccd77254f3fd683cb8ff923 /stage1
parent92b26f394460aa609f9d073ea044776e7d8c46fb (diff)
downloadcbt-349e4b3546973a30f2823fa5461767322a606d9a.tar.gz
cbt-349e4b3546973a30f2823fa5461767322a606d9a.tar.bz2
cbt-349e4b3546973a30f2823fa5461767322a606d9a.zip
support flatClassLoader and run at Dependency level
Diffstat (limited to 'stage1')
-rw-r--r--stage1/resolver.scala13
1 files changed, 13 insertions, 0 deletions
diff --git a/stage1/resolver.scala b/stage1/resolver.scala
index 4731b0c..e02f931 100644
--- a/stage1/resolver.scala
+++ b/stage1/resolver.scala
@@ -79,8 +79,21 @@ trait DependencyImplementation extends Dependency{
}
*/
+ def runMain( className: String, args: String* ) = lib.runMain( className, args, classLoader )
+
def flatClassLoader: Boolean = false
+ def mainClasses: Seq[Class[_]] = exportedClasspath.files.flatMap( lib.mainClasses( _, classLoader ) )
+
+ def runClass: Option[String] = lib.runClass( mainClasses ).map( _.getName )
+
+ def run( args: String* ): ExitCode = {
+ runClass.map( runMain( _, args: _* ) ).getOrElse{
+ logger.task( "No main class found for " ++ show )
+ ExitCode.Success
+ }
+ }
+
def classLoader: ClassLoader = {
if( flatClassLoader ){
new java.net.URLClassLoader(classpath.strings.map(f => new URL("file://" ++ f)).toArray)