aboutsummaryrefslogtreecommitdiff
path: root/stage1/resolver.scala
diff options
context:
space:
mode:
Diffstat (limited to 'stage1/resolver.scala')
-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)