diff options
Diffstat (limited to 'stage1/resolver.scala')
-rw-r--r-- | stage1/resolver.scala | 13 |
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) |