Scripting examples refactoring
This commit is contained in:
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.script.examples.jvm.resolve.maven.host
|
package org.jetbrains.kotlin.script.examples.jvm.resolve.maven.host
|
||||||
|
|
||||||
import org.jetbrains.kotlin.script.examples.jvm.resolve.maven.MyScriptWithMavenDeps
|
import org.jetbrains.kotlin.script.examples.jvm.resolve.maven.ScriptWithMavenDeps
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.script.experimental.api.EvaluationResult
|
import kotlin.script.experimental.api.EvaluationResult
|
||||||
import kotlin.script.experimental.api.ResultWithDiagnostics
|
import kotlin.script.experimental.api.ResultWithDiagnostics
|
||||||
@@ -15,7 +15,7 @@ import kotlin.script.experimental.jvmhost.createBasicScriptCompilationConfigurat
|
|||||||
|
|
||||||
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
|
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
|
||||||
|
|
||||||
val compilationConfiguration = createBasicScriptCompilationConfigurationFromAnnotatedBaseClass<MyScriptWithMavenDeps>()
|
val compilationConfiguration = createBasicScriptCompilationConfigurationFromAnnotatedBaseClass<ScriptWithMavenDeps>()
|
||||||
|
|
||||||
return BasicJvmScriptingHost().eval(scriptFile.toScriptSource(), compilationConfiguration, null)
|
return BasicJvmScriptingHost().eval(scriptFile.toScriptSource(), compilationConfiguration, null)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-11
@@ -21,13 +21,11 @@ import kotlin.script.experimental.jvm.jvm
|
|||||||
|
|
||||||
@KotlinScript(
|
@KotlinScript(
|
||||||
extension = "scriptwithdeps.kts",
|
extension = "scriptwithdeps.kts",
|
||||||
compilationConfiguration = MyScriptCompilationConfiguration::class
|
compilationConfiguration = ScriptWithMavenDepsConfiguration::class
|
||||||
)
|
)
|
||||||
abstract class MyScriptWithMavenDeps {
|
abstract class ScriptWithMavenDeps
|
||||||
// abstract fun body(vararg args: String): Int
|
|
||||||
}
|
|
||||||
|
|
||||||
object MyScriptCompilationConfiguration : ScriptCompilationConfiguration(
|
object ScriptWithMavenDepsConfiguration : ScriptCompilationConfiguration(
|
||||||
{
|
{
|
||||||
defaultImports(DependsOn::class, Repository::class)
|
defaultImports(DependsOn::class, Repository::class)
|
||||||
jvm {
|
jvm {
|
||||||
@@ -36,19 +34,15 @@ object MyScriptCompilationConfiguration : ScriptCompilationConfiguration(
|
|||||||
"kotlin-script-util" // DependsOn annotation is taken from script-util
|
"kotlin-script-util" // DependsOn annotation is taken from script-util
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
// variant: dependencies(collectDependenciesFromCurrentContext(...
|
|
||||||
refineConfiguration {
|
refineConfiguration {
|
||||||
// variant ^: dynamicConfiguration
|
onAnnotations(DependsOn::class, Repository::class, handler = ::configureMavenDepsOnAnnotations)
|
||||||
onAnnotations(DependsOn::class, Repository::class, handler = ::myConfigureOnAnnotations)
|
|
||||||
// variants: onAnnotations, refineOnAnnotations (esp. for dynamicConfiguration), updateOnAnnotations
|
|
||||||
// other triggers: beforeParsing, onSections
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
private val resolver = FilesAndMavenResolver()
|
private val resolver = FilesAndMavenResolver()
|
||||||
|
|
||||||
fun myConfigureOnAnnotations(context: ScriptConfigurationRefinementContext): ResultWithDiagnostics<ScriptCompilationConfiguration> {
|
fun configureMavenDepsOnAnnotations(context: ScriptConfigurationRefinementContext): ResultWithDiagnostics<ScriptCompilationConfiguration> {
|
||||||
val annotations = context.collectedData?.get(ScriptCollectedData.foundAnnotations)?.takeIf { it.isNotEmpty() }
|
val annotations = context.collectedData?.get(ScriptCollectedData.foundAnnotations)?.takeIf { it.isNotEmpty() }
|
||||||
?: return context.compilationConfiguration.asSuccess()
|
?: return context.compilationConfiguration.asSuccess()
|
||||||
val scriptContents = object : ScriptContents {
|
val scriptContents = object : ScriptContents {
|
||||||
|
|||||||
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.script.examples.jvm.simple.host
|
package org.jetbrains.kotlin.script.examples.jvm.simple.host
|
||||||
|
|
||||||
import org.jetbrains.kotlin.script.examples.jvm.simple.MyScript
|
import org.jetbrains.kotlin.script.examples.jvm.simple.SimpleScript
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.script.experimental.api.EvaluationResult
|
import kotlin.script.experimental.api.EvaluationResult
|
||||||
import kotlin.script.experimental.api.ResultWithDiagnostics
|
import kotlin.script.experimental.api.ResultWithDiagnostics
|
||||||
@@ -16,7 +16,7 @@ import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost
|
|||||||
import kotlin.script.experimental.jvmhost.createBasicScriptCompilationConfigurationFromAnnotatedBaseClass
|
import kotlin.script.experimental.jvmhost.createBasicScriptCompilationConfigurationFromAnnotatedBaseClass
|
||||||
|
|
||||||
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
|
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
|
||||||
val compilationConfiguration = createBasicScriptCompilationConfigurationFromAnnotatedBaseClass<MyScript> {
|
val compilationConfiguration = createBasicScriptCompilationConfigurationFromAnnotatedBaseClass<SimpleScript> {
|
||||||
jvm {
|
jvm {
|
||||||
dependenciesFromCurrentContext(
|
dependenciesFromCurrentContext(
|
||||||
"scripting-jvm-simple-script" /* script library jar name */
|
"scripting-jvm-simple-script" /* script library jar name */
|
||||||
|
|||||||
+1
-3
@@ -8,6 +8,4 @@ package org.jetbrains.kotlin.script.examples.jvm.simple
|
|||||||
import kotlin.script.experimental.annotations.KotlinScript
|
import kotlin.script.experimental.annotations.KotlinScript
|
||||||
|
|
||||||
@KotlinScript(extension = "simplescript.kts")
|
@KotlinScript(extension = "simplescript.kts")
|
||||||
abstract class MyScript {
|
abstract class SimpleScript
|
||||||
// abstract fun body(vararg args: String): Int
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user