val config = createJvmCompilationConfigurationFromTemplate { jvm { dependenciesFromCurrentContext(wholeClasspath = true) // TODO: importedScripts instead of dependencies dependencies.append( JvmDependency( File("/home/nikky/dev/Voodoo/samples/build/classes/kotlin/main") ) ) val JDK_HOME = System.getenv("JAVA_HOME") ?: throw IllegalStateException("please set JAVA_HOME to the installed jdk") jdkHome(File(JDK_HOME)) } compilerOptions.append("-jvm-target", "1.8") } println("config entries") config.entries().forEach { println(" $it") } val evaluationConfig = ScriptEvaluationConfiguration { constructorArgs(rootDir) } val scriptFile = File("packs").resolve(script) val absoluteScriptFile = scriptFile.absoluteFile val scriptContent = scriptFile.readText() val scriptSource = scriptContent.toScriptSource() val result = BasicJvmScriptingHost().eval(scriptSource, config, evaluationConfig) fun SourceCode.Location.posToString() = "(${start.line}, ${start.col})" for (report in result.reports) { println(report) val severityIndicator = when (report.severity) { ScriptDiagnostic.Severity.FATAL -> "fatal" ScriptDiagnostic.Severity.ERROR -> "e" ScriptDiagnostic.Severity.WARNING -> "w" ScriptDiagnostic.Severity.INFO -> "i" ScriptDiagnostic.Severity.DEBUG -> "d" } println("$severityIndicator: $absoluteScriptFile: ${report.location?.posToString()}: ${report.message}") report.exception?.printStackTrace() }