1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-27 00:38:11 -07:00

Implements args() for application {}.

This commit is contained in:
Cedric Beust 2017-01-05 12:23:55 -08:00
parent a5c3c93657
commit ff94cc5e3f

View file

@ -20,9 +20,12 @@ import java.io.File
@Directive @Directive
class ApplicationConfig { class ApplicationConfig {
var mainClass: String? = null var mainClass: String? = null
var jvmArgs = arrayListOf<String>()
val jvmArgs = arrayListOf<String>()
fun jvmArgs(vararg args: String) = args.forEach { jvmArgs.add(it) } fun jvmArgs(vararg args: String) = args.forEach { jvmArgs.add(it) }
val args = arrayListOf<String>()
fun args(vararg argv: String) = argv.forEach { args.add(it) }
} }
@Directive @Directive
@ -93,7 +96,8 @@ class ApplicationPlugin @Inject constructor(val configActor: ConfigActor<Applica
} }
private fun runJarFile(project: Project, context: KobaltContext, config: ApplicationConfig) : TaskResult { private fun runJarFile(project: Project, context: KobaltContext, config: ApplicationConfig) : TaskResult {
val jarFileName = project.projectProperties.get(Archives.JAR_NAME) val fileName = project.projectProperties.get(Archives.JAR_NAME) as String
val jarFileName = KFiles.joinDir(KFiles.libsDir(project), fileName)
val jarName = (jarFileName ?: KFiles.joinDir(KFiles.libsDir(project), val jarName = (jarFileName ?: KFiles.joinDir(KFiles.libsDir(project),
context.variant.archiveName(project, null, ".jar"))) context.variant.archiveName(project, null, ".jar")))
as String as String
@ -118,7 +122,7 @@ class ApplicationPlugin @Inject constructor(val configActor: ConfigActor<Applica
val contributorFlags = context.pluginInfo.jvmFlagContributors.flatMap { val contributorFlags = context.pluginInfo.jvmFlagContributors.flatMap {
it.jvmFlagsFor(project, context, initialArgs) it.jvmFlagsFor(project, context, initialArgs)
} }
val args = contributorFlags + initialArgs val args = contributorFlags + initialArgs + config.args
val exitCode = RunCommand(java.absolutePath).run(args, val exitCode = RunCommand(java.absolutePath).run(args,
successCallback = { output: List<String> -> successCallback = { output: List<String> ->
println(output.joinToString("\n")) println(output.joinToString("\n"))