From 39ad2b2378ef43131d478419dab050f77bd27fb2 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 14 Jan 2016 12:47:11 +0100 Subject: [PATCH] return correct exit code when script execution fails --- .../src/org/jetbrains/kotlin/cli/common/ExitCode.java | 3 ++- .../cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt | 2 +- .../kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/ExitCode.java b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/ExitCode.java index 598cb186fc3..e8c2a283040 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/ExitCode.java +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/ExitCode.java @@ -19,7 +19,8 @@ package org.jetbrains.kotlin.cli.common; public enum ExitCode { OK(0), COMPILATION_ERROR(1), - INTERNAL_ERROR(2); + INTERNAL_ERROR(2), + SCRIPT_EXECUTION_ERROR(3); private final int code; diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt index 97d94d6eeb5..30e0205f731 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt @@ -174,7 +174,7 @@ open class K2JVMCompiler : CLICompiler() { 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) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt index aa5ae072306..191910d3666 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt @@ -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) { - val scriptClass = compileScript(configuration, paths, environment) ?: return + scriptArgs: List): 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) {