diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfigurationParams.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfigurationParams.kt index 7e62668e403..55e5c985e74 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfigurationParams.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfigurationParams.kt @@ -36,8 +36,7 @@ object ScriptCompileConfigurationParams { } // DSL -inline -fun scriptConfiguration(from: HeterogeneousMap = HeterogeneousMap(), body: ScriptCompileConfigurationParams.Builder.() -> Unit) = +inline fun scriptConfiguration(from: HeterogeneousMap = HeterogeneousMap(), body: ScriptCompileConfigurationParams.Builder.() -> Unit) = ScriptCompileConfigurationParams.Builder().build(from, body) diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt index 2693ead393c..dd83e403248 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt @@ -19,8 +19,7 @@ open class ScriptEvaluationEnvironmentParams : HeterogeneousMapBuilder() { } } -inline -fun scriptEvaluationEnvironment(from: HeterogeneousMap = HeterogeneousMap(), body: ScriptEvaluationEnvironmentParams.() -> Unit) = +inline fun scriptEvaluationEnvironment(from: HeterogeneousMap = HeterogeneousMap(), body: ScriptEvaluationEnvironmentParams.() -> Unit) = ScriptEvaluationEnvironmentParams().build(from, body) typealias ScriptEvaluationEnvironment = HeterogeneousMap diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptProcessedDataParams.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptProcessedDataParams.kt index 1817cfd7db7..dfff0d535df 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptProcessedDataParams.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptProcessedDataParams.kt @@ -13,6 +13,5 @@ class ProcessedScriptDataParams : HeterogeneousMapBuilder() { } } -inline -fun processedScriptData(from: HeterogeneousMap = HeterogeneousMap(), body: ProcessedScriptDataParams.() -> Unit) = +inline fun processedScriptData(from: HeterogeneousMap = HeterogeneousMap(), body: ProcessedScriptDataParams.() -> Unit) = ProcessedScriptDataParams().build(from, body) \ No newline at end of file diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptUtil.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptUtil.kt index df34f4e2969..272b8b058a7 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptUtil.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptUtil.kt @@ -44,8 +44,7 @@ open class HeterogeneousMapBuilder { } } -inline -fun T.build(from: HeterogeneousMap = HeterogeneousMap(), body: T.() -> Unit): HeterogeneousMap { +inline fun T.build(from: HeterogeneousMap = HeterogeneousMap(), body: T.() -> Unit): HeterogeneousMap { body() return HeterogeneousMap(from, pairs) } diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptConfiguration.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptConfiguration.kt index 9e083c68270..a66c142bea9 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptConfiguration.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptConfiguration.kt @@ -8,12 +8,16 @@ package kotlin.script.experimental.jvm import kotlinx.coroutines.experimental.runBlocking import kotlin.script.experimental.api.* import java.io.File +import kotlin.script.experimental.jvm.JvmScriptCompileConfigurationParams.javaHomeDir -fun jvmConfigWithJavaHome(vararg params: Pair, Any?>): ScriptCompileConfiguration = - ScriptCompileConfiguration( - JvmScriptCompileConfigurationParams.javaHomeDir to File(System.getProperty("java.home")), - *params - ) +inline fun jvmConfigWithJavaHome( + from: HeterogeneousMap = HeterogeneousMap(), + crossinline body: JvmScriptCompileConfigurationParams.Builder.() -> Unit = {} +) = + jvmScriptConfiguration(from) { + javaHomeDir(File(System.getProperty("java.home"))) + body() + } val ScriptConfigurator?.defaultConfiguration: ScriptCompileConfiguration get() = this?.let { runBlocking { baseConfiguration(null) } }?.resultOrNull() ?: ScriptCompileConfiguration() \ No newline at end of file diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptData.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptData.kt index 773540a0c7d..854048c5923 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptData.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptData.kt @@ -6,13 +6,19 @@ package kotlin.script.experimental.jvm import java.io.File -import kotlin.script.experimental.api.ScriptDependency -import kotlin.script.experimental.api.TypedKey +import kotlin.script.experimental.api.* object JvmScriptCompileConfigurationParams { + val javaHomeDir by typedKey() - val javaHomeDir = TypedKey("javaHomeDir") + open class Builder : ScriptCompileConfigurationParams.Builder() { + fun dependencies(vararg classpath: Iterable) = + add(ScriptCompileConfigurationParams.dependencies to classpath.map(::JvmDependency)) + } } -class JvmDependency(val classpath: Iterable): ScriptDependency +inline fun jvmScriptConfiguration(from: HeterogeneousMap = HeterogeneousMap(), body: JvmScriptCompileConfigurationParams.Builder.() -> Unit) = + JvmScriptCompileConfigurationParams.Builder().build(from, body) + +class JvmDependency(val classpath: Iterable) : ScriptDependency diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptEvaluation.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptEvaluation.kt index 1eae78a9933..e67be9682ac 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptEvaluation.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptEvaluation.kt @@ -7,9 +7,7 @@ package kotlin.script.experimental.jvm -import kotlin.script.experimental.api.ScriptConfigurator -import kotlin.script.experimental.api.ScriptRunner -import kotlin.script.experimental.api.typedKey +import kotlin.script.experimental.api.* import kotlin.script.experimental.host.BasicScriptingHost open class JvmBasicScriptingHost( @@ -18,6 +16,11 @@ open class JvmBasicScriptingHost( runner: ScriptRunner ) : BasicScriptingHost(configurationExtractor, compiler, runner) -object JvmScriptEvaluationEnvironmentParams { - val baseClassLoader by typedKey() +class JvmScriptEvaluationEnvironmentParams : ScriptEvaluationEnvironmentParams() { + companion object { + val baseClassLoader by typedKey() + } } + +inline fun jvmScriptEvaluationEnvironment(from: HeterogeneousMap = HeterogeneousMap(), body: JvmScriptEvaluationEnvironmentParams.() -> Unit) = + JvmScriptEvaluationEnvironmentParams().build(from, body)