Make definition a part of the basic hosts, simplify usages

This commit is contained in:
Ilya Chernikov
2018-07-23 15:33:17 +02:00
parent 70ec004aaa
commit c41717d03b
4 changed files with 33 additions and 24 deletions
@@ -7,28 +7,25 @@ package org.jetbrains.kotlin.script.examples.jvm.simple.host
import org.jetbrains.kotlin.script.examples.jvm.simple.MyScript
import java.io.File
import kotlin.script.experimental.api.*
import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass
import kotlin.script.experimental.api.EvaluationResult
import kotlin.script.experimental.api.ResultWithDiagnostics
import kotlin.script.experimental.api.ScriptEvaluationEnvironment
import kotlin.script.experimental.api.buildScriptingProperties
import kotlin.script.experimental.host.toScriptSource
import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment
import kotlin.script.experimental.jvm.jvmDependenciesFromCurrentContext
import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost
import kotlin.script.experimental.jvmhost.makeBasicHostFromAnnotatedScriptBaseClass
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
val scriptDefinition = createScriptDefinitionFromAnnotatedBaseClass(
KotlinType(MyScript::class),
defaultJvmScriptingEnvironment
)
val additionalCompilationProperties = buildScriptingProperties {
jvmDependenciesFromCurrentContext(
"scripting-jvm-simple-script" /* script library jar name */
)
}
val host = BasicJvmScriptingHost()
val host = makeBasicHostFromAnnotatedScriptBaseClass<MyScript>()
return host.eval(
scriptFile.toScriptSource(), scriptDefinition, additionalCompilationProperties, ScriptEvaluationEnvironment()
scriptFile.toScriptSource(), additionalCompilationProperties, ScriptEvaluationEnvironment()
)
}