Implement simplified property bag dsl:

move it to the separate jar,
use property bag chaining
This commit is contained in:
Ilya Chernikov
2018-03-27 23:49:07 +02:00
parent 495c75c48e
commit 2ddcc280a9
20 changed files with 124 additions and 119 deletions
@@ -1 +1 @@
import org.jetbrains.kotlin.gradle.dsl.Coroutines
import org.jetbrains.kotlin.gradle.dsl.Coroutines
@@ -13,14 +13,13 @@ import kotlin.script.experimental.definitions.ScriptDefinitionFromAnnotatedBaseC
import kotlin.script.experimental.host.toScriptSource
import kotlin.script.experimental.jvm.*
import kotlin.script.experimental.jvmhost.impl.KJVMCompilerImpl
import kotlin.script.experimental.misc.*
inline fun myJvmConfig(
from: ChainedPropertyBag = ChainedPropertyBag(),
crossinline body: JvmScriptCompileConfigurationParams.Builder.() -> Unit = {}
) = jvmConfigWithJavaHome(from) {
signature<MyScript>()
dependencies(scriptCompilationClasspathFromContext("script" /* script library jar name */))
body()
val myJvmConfigParams = jvmJavaHomeParams + with(ScriptCompileConfigurationParams) {
listOf(
scriptSignature to ScriptSignature(MyScript::class, ProvidedDeclarations()),
dependencies(JvmDependency(scriptCompilationClasspathFromContext("script" /* script library jar name */)))
)
}
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
@@ -35,7 +34,7 @@ fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
scriptDefinition.evaluator
)
return host.eval(scriptFile.toScriptSource(), myJvmConfig(), ScriptEvaluationEnvironment())
return host.eval(scriptFile.toScriptSource(), ChainedPropertyBag(null, myJvmConfigParams), ScriptEvaluationEnvironment())
}
fun main(vararg args: String) {