Remove ScriptCompileConfiguration as separate entity, refactor pieces accordingly
This commit is contained in:
+5
-3
@@ -10,12 +10,14 @@ import java.io.File
|
||||
import kotlin.script.experimental.api.EvaluationResult
|
||||
import kotlin.script.experimental.api.ResultWithDiagnostics
|
||||
import kotlin.script.experimental.host.toScriptSource
|
||||
import kotlin.script.experimental.jvmhost.makeBasicHostFromAnnotatedScriptBaseClass
|
||||
import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost
|
||||
import kotlin.script.experimental.jvmhost.createBasicScriptDefinitionFromAnnotatedBaseClass
|
||||
|
||||
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
|
||||
val host = makeBasicHostFromAnnotatedScriptBaseClass<MyScriptWithMavenDeps>()
|
||||
|
||||
return host.eval(scriptFile.toScriptSource(), null, null)
|
||||
val scriptDefinition = createBasicScriptDefinitionFromAnnotatedBaseClass<MyScriptWithMavenDeps>()
|
||||
|
||||
return BasicJvmScriptingHost().eval(scriptFile.toScriptSource(), scriptDefinition, null)
|
||||
}
|
||||
|
||||
fun main(vararg args: String) {
|
||||
|
||||
+6
-6
@@ -49,9 +49,9 @@ object MyScriptDefinition : ScriptDefinition(
|
||||
|
||||
private val resolver = FilesAndMavenResolver()
|
||||
|
||||
fun myConfigureOnAnnotations(script: ScriptDataFacade): ResultWithDiagnostics<ScriptCompileConfiguration?> {
|
||||
fun myConfigureOnAnnotations(script: ScriptDataFacade): ResultWithDiagnostics<ScriptDefinition?> {
|
||||
val annotations = script.collectedData?.get(ScriptCollectedData.foundAnnotations)?.takeIf { it.isNotEmpty() }
|
||||
?: return script.configuration.asSuccess()
|
||||
?: return null.asSuccess()
|
||||
val scriptContents = object : ScriptContents {
|
||||
override val annotations: Iterable<Annotation> = annotations
|
||||
override val file: File? = null
|
||||
@@ -63,11 +63,11 @@ fun myConfigureOnAnnotations(script: ScriptDataFacade): ResultWithDiagnostics<Sc
|
||||
}
|
||||
return try {
|
||||
val newDepsFromResolver = resolver.resolve(scriptContents, emptyMap(), ::report, null).get()
|
||||
?: return script.configuration.asSuccess(diagnostics)
|
||||
?: return null.asSuccess(diagnostics)
|
||||
val resolvedClasspath = newDepsFromResolver.classpath.toList().takeIf { it.isNotEmpty() }
|
||||
?: return script.configuration.asSuccess(diagnostics)
|
||||
ScriptCompileConfiguration {
|
||||
dependencies(JvmDependency(resolvedClasspath))
|
||||
?: return null.asSuccess(diagnostics)
|
||||
ScriptDefinition(script.definition) {
|
||||
dependencies.append(JvmDependency(resolvedClasspath))
|
||||
}.asSuccess(diagnostics)
|
||||
} catch (e: Throwable) {
|
||||
ResultWithDiagnostics.Failure(*diagnostics.toTypedArray(), e.asDiagnostics())
|
||||
|
||||
+4
-7
@@ -9,15 +9,14 @@ import org.jetbrains.kotlin.script.examples.jvm.simple.MyScript
|
||||
import java.io.File
|
||||
import kotlin.script.experimental.api.EvaluationResult
|
||||
import kotlin.script.experimental.api.ResultWithDiagnostics
|
||||
import kotlin.script.experimental.api.ScriptCompileConfiguration
|
||||
import kotlin.script.experimental.api.ScriptEvaluationEnvironment
|
||||
import kotlin.script.experimental.host.toScriptSource
|
||||
import kotlin.script.experimental.jvm.dependenciesFromCurrentContext
|
||||
import kotlin.script.experimental.jvm.jvm
|
||||
import kotlin.script.experimental.jvmhost.makeBasicHostFromAnnotatedScriptBaseClass
|
||||
import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost
|
||||
import kotlin.script.experimental.jvmhost.createBasicScriptDefinitionFromAnnotatedBaseClass
|
||||
|
||||
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
|
||||
val additionalCompilationProperties = ScriptCompileConfiguration {
|
||||
val scriptDefinition = createBasicScriptDefinitionFromAnnotatedBaseClass<MyScript> {
|
||||
jvm {
|
||||
dependenciesFromCurrentContext(
|
||||
"scripting-jvm-simple-script" /* script library jar name */
|
||||
@@ -25,9 +24,7 @@ fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
|
||||
}
|
||||
}
|
||||
|
||||
val host = makeBasicHostFromAnnotatedScriptBaseClass<MyScript>()
|
||||
|
||||
return host.eval(scriptFile.toScriptSource(), additionalCompilationProperties, null)
|
||||
return BasicJvmScriptingHost().eval(scriptFile.toScriptSource(), scriptDefinition, null)
|
||||
}
|
||||
|
||||
fun main(vararg args: String) {
|
||||
|
||||
Reference in New Issue
Block a user