Skip to content

Instantly share code, notes, and snippets.

@eutkin
Created August 9, 2021 11:09
Show Gist options
  • Save eutkin/28492bb86abf79b54b77251818826e9c to your computer and use it in GitHub Desktop.
Save eutkin/28492bb86abf79b54b77251818826e9c to your computer and use it in GitHub Desktop.
package com.github.eutkin
import kotlin.script.experimental.annotations.KotlinScript
import kotlin.script.experimental.api.*
import kotlin.script.experimental.host.StringScriptSource
import kotlin.script.experimental.jvm.dependenciesFromCurrentContext
import kotlin.script.experimental.jvm.jvm
import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost
import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromTemplate
object KotlinSciptGraalCommand {
@JvmStatic
fun main(args: Array<String>) {
val result = BasicJvmScriptingHost().eval(StringScriptSource("val x = 1; x"), ScriptCompilationConfiguration.Default, null)
when(val resultValue: ResultValue = result.valueOrThrow().returnValue) {
is ResultValue.Value -> println("${resultValue.value}")
else -> throw RuntimeException()
}
}
}
@KotlinScript(
displayName = "My Script",
fileExtension = "myscr.kts"
)
object MyScript
object MyScriptCompilationConfiguration : ScriptCompilationConfiguration({
defaultImports("java.util.*")
providedProperties("x" to Int::class, "y" to String::class)
})
object MyScriptEvaluationConfiguration : ScriptEvaluationConfiguration({
providedProperties("x" to 42, "y" to "foo")
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment