diff --git a/libraries/examples/scripting/jvm-maven-deps/build.gradle.kts b/libraries/examples/scripting/jvm-maven-deps/build.gradle.kts deleted file mode 100644 index a87d58dfd71..00000000000 --- a/libraries/examples/scripting/jvm-maven-deps/build.gradle.kts +++ /dev/null @@ -1 +0,0 @@ -import org.jetbrains.kotlin.gradle.dsl.Coroutines apply { plugin("kotlin") } dependencies { compile(project(":kotlin-script-runtime")) compile(project(":kotlin-scripting-jvm-host")) compile(project(":kotlin-script-util")) compile(projectDist(":kotlin-stdlib")) compile(projectDist(":kotlin-reflect")) compileOnly(project(":compiler:util")) runtime(projectDist(":kotlin-compiler")) testCompile(commonDep("junit")) testRuntime("com.jcabi:jcabi-aether:0.10.1") testRuntime("org.sonatype.aether:aether-api:1.13.1") testRuntime("org.apache.maven:maven-core:3.0.3") } sourceSets { "main" { projectDefault() } "test" { projectDefault() } } kotlin { experimental.coroutines = Coroutines.ENABLE } \ No newline at end of file diff --git a/libraries/examples/scripting/jvm-maven-deps/host/build.gradle.kts b/libraries/examples/scripting/jvm-maven-deps/host/build.gradle.kts new file mode 100644 index 00000000000..5db79930a46 --- /dev/null +++ b/libraries/examples/scripting/jvm-maven-deps/host/build.gradle.kts @@ -0,0 +1 @@ +import org.jetbrains.kotlin.gradle.dsl.Coroutines apply { plugin("kotlin") } dependencies { compile(project(":examples:scripting-jvm-maven-deps:script")) compile(project(":kotlin-scripting-jvm-host")) compile(projectDist(":kotlin-stdlib")) compile(projectDist(":kotlin-reflect")) compileOnly(project(":compiler:util")) runtime(projectDist(":kotlin-compiler")) testCompile(commonDep("junit")) } sourceSets { "main" { projectDefault() } "test" { projectDefault() } } kotlin { experimental.coroutines = Coroutines.ENABLE } \ No newline at end of file diff --git a/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt b/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt new file mode 100644 index 00000000000..3160e0e1861 --- /dev/null +++ b/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt @@ -0,0 +1,48 @@ +/* + * Copyright 2000-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.resolve.maven.host + +import org.jetbrains.kotlin.script.examples.jvm.resolve.maven.MyScriptWithMavenDeps +import org.jetbrains.kotlin.script.examples.jvm.resolve.maven.myJvmConfig +import java.io.File +import kotlin.script.experimental.api.EvaluationResult +import kotlin.script.experimental.api.ResultWithDiagnostics +import kotlin.script.experimental.api.ScriptEvaluationEnvironment +import kotlin.script.experimental.api.toConfigEntry +import kotlin.script.experimental.definitions.ScriptDefinitionFromAnnotatedBaseClass +import kotlin.script.experimental.host.toScriptSource +import kotlin.script.experimental.jvm.DummyCompiledJvmScriptCache +import kotlin.script.experimental.jvm.JvmBasicScriptingHost +import kotlin.script.experimental.jvm.JvmScriptCompiler +import kotlin.script.experimental.jvmhost.impl.KJVMCompilerImpl + +fun evalFile(scriptFile: File): ResultWithDiagnostics { + val scriptCompiler = JvmScriptCompiler(KJVMCompilerImpl(), DummyCompiledJvmScriptCache()) + val scriptDefinition = ScriptDefinitionFromAnnotatedBaseClass(MyScriptWithMavenDeps::class) + + val host = JvmBasicScriptingHost( + scriptDefinition.configurator, + scriptCompiler, + scriptDefinition.runner + ) + + return host.eval(myJvmConfig { add(scriptFile.toScriptSource().toConfigEntry()) }, ScriptEvaluationEnvironment()) +} + +fun main(vararg args: String) { + if (args.size != 1) { + println("usage: