diff --git a/libraries/examples/scripting/jvm-embeddable-host/build.gradle.kts b/libraries/examples/scripting/jvm-embeddable-host/build.gradle.kts new file mode 100644 index 00000000000..b20ec776f7f --- /dev/null +++ b/libraries/examples/scripting/jvm-embeddable-host/build.gradle.kts @@ -0,0 +1,21 @@ + +plugins { + kotlin("jvm") +} + +dependencies { + compile(project(":examples:scripting-jvm-simple-script")) + compileOnly(project(":kotlin-scripting-jvm-host")) + compile(project(":kotlin-script-util")) + testRuntimeOnly(projectRuntimeJar(":kotlin-compiler-embeddable")) + testRuntimeOnly(project(":kotlin-scripting-jvm-host-embeddable")) + testRuntimeOnly(project(":kotlin-reflect")) + testRuntimeOnly(intellijDep()) { includeJars("guava", rootProject = rootProject) } + testCompile(commonDep("junit")) +} + +sourceSets { + "main" { projectDefault() } + "test" { projectDefault() } +} + diff --git a/libraries/examples/scripting/jvm-embeddable-host/src/org/jetbrains/kotlin/script/examples/jvm/embeddable/host/host.kt b/libraries/examples/scripting/jvm-embeddable-host/src/org/jetbrains/kotlin/script/examples/jvm/embeddable/host/host.kt new file mode 100644 index 00000000000..8393bfd16d5 --- /dev/null +++ b/libraries/examples/scripting/jvm-embeddable-host/src/org/jetbrains/kotlin/script/examples/jvm/embeddable/host/host.kt @@ -0,0 +1,44 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ +package org.jetbrains.kotlin.script.examples.jvm.embeddable.host + +import org.jetbrains.kotlin.script.examples.jvm.simple.SimpleScript +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.jvm.dependenciesFromCurrentContext +import kotlin.script.experimental.jvm.jvm +import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost +import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromTemplate + +fun evalFile(scriptFile: File): ResultWithDiagnostics { + val compilationConfiguration = createJvmCompilationConfigurationFromTemplate { + jvm { + dependenciesFromCurrentContext( + "scripting-jvm-simple-script", /* script library jar name */ + "guava", + wholeClasspath = true + ) + } + } + + return BasicJvmScriptingHost().eval(scriptFile.toScriptSource(), compilationConfiguration, null) +} + +fun main(vararg args: String) { + if (args.size != 1) { + println("usage: