return correct exit code when script execution fails

This commit is contained in:
Dmitry Jemerov
2016-01-14 12:47:11 +01:00
parent f3faa10fcc
commit 39ad2b2378
3 changed files with 8 additions and 4 deletions
@@ -174,7 +174,7 @@ open class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
if (messageSeverityCollector.anyReported(CompilerMessageSeverity.ERROR)) return COMPILATION_ERROR
KotlinToJVMBytecodeCompiler.compileAndExecuteScript(configuration, paths, environment, scriptArgs)
return KotlinToJVMBytecodeCompiler.compileAndExecuteScript(configuration, paths, environment, scriptArgs)
}
else {
environment = createCoreEnvironment(rootDisposable, configuration)
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult
import org.jetbrains.kotlin.asJava.FilteredJvmDiagnostics
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.CompilerPluginContext
import org.jetbrains.kotlin.cli.common.ExitCode
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
@@ -196,8 +197,8 @@ object KotlinToJVMBytecodeCompiler {
configuration: CompilerConfiguration,
paths: KotlinPaths,
environment: KotlinCoreEnvironment,
scriptArgs: List<String>) {
val scriptClass = compileScript(configuration, paths, environment) ?: return
scriptArgs: List<String>): ExitCode {
val scriptClass = compileScript(configuration, paths, environment) ?: return ExitCode.COMPILATION_ERROR
val scriptConstructor = getScriptConstructor(scriptClass)
try {
@@ -205,8 +206,10 @@ object KotlinToJVMBytecodeCompiler {
}
catch (e: Throwable) {
reportExceptionFromScript(e)
return ExitCode.SCRIPT_EXECUTION_ERROR
}
return ExitCode.OK
}
private fun reportExceptionFromScript(exception: Throwable) {