diff --git a/compiler/testData/cli/jvm/nonexistentScript.out b/compiler/testData/cli/jvm/nonexistentScript.out index 2dc22bb8c2b..bf286daac3a 100644 --- a/compiler/testData/cli/jvm/nonexistentScript.out +++ b/compiler/testData/cli/jvm/nonexistentScript.out @@ -1,2 +1,2 @@ -error: source file or directory not found: path/to/nonexistent.kts +error: script file not found: path/to/nonexistent.kts; Specify path to the script file as the first argument COMPILATION_ERROR diff --git a/compiler/testData/cli/jvm/wrongScriptWithDirectory.out b/compiler/testData/cli/jvm/wrongScriptWithDirectory.out index a753b1e58f4..4955e38e256 100644 --- a/compiler/testData/cli/jvm/wrongScriptWithDirectory.out +++ b/compiler/testData/cli/jvm/wrongScriptWithDirectory.out @@ -1,2 +1,2 @@ -error: specify path to the script file as the first argument +error: script argument points to a directory: $TESTDATA_DIR$/wrongAbiVersionLib; Specify path to the script file as the first argument COMPILATION_ERROR diff --git a/compiler/testData/cli/jvm/wrongScriptWithKtSource.out b/compiler/testData/cli/jvm/wrongScriptWithKtSource.out index a753b1e58f4..174f8829fbf 100644 --- a/compiler/testData/cli/jvm/wrongScriptWithKtSource.out +++ b/compiler/testData/cli/jvm/wrongScriptWithKtSource.out @@ -1,2 +1,2 @@ -error: specify path to the script file as the first argument +error: unrecognized script file: $TESTDATA_DIR$/simple.kt; Specify path to the script file as the first argument COMPILATION_ERROR diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/AbstractScriptEvaluationExtension.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/AbstractScriptEvaluationExtension.kt index 001392ff17f..ed8cee51a99 100644 --- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/AbstractScriptEvaluationExtension.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/AbstractScriptEvaluationExtension.kt @@ -60,11 +60,17 @@ abstract class AbstractScriptEvaluationExtension : ScriptEvaluationExtension { val scriptFile = File(arguments.freeArgs.first()) val script = scriptFile.toScriptSource() - if (scriptFile.isDirectory || !scriptDefinitionProvider.isScript(script)) { + val error = when { + !scriptFile.exists() -> "Script file not found: ${arguments.freeArgs.first()}" + scriptFile.isDirectory -> "Script argument points to a directory: ${arguments.freeArgs.first()}" + !scriptDefinitionProvider.isScript(script) -> "Unrecognized script file: ${arguments.freeArgs.first()}" + else -> null + } + if (error != null) { val extensionHint = if (configuration.get(ScriptingConfigurationKeys.SCRIPT_DEFINITIONS)?.let { it.size == 1 && it.first().isDefault } == true) " (.kts)" else "" - messageCollector.report(CompilerMessageSeverity.ERROR, "Specify path to the script file$extensionHint as the first argument") + messageCollector.report(CompilerMessageSeverity.ERROR, "$error; Specify path to the script file$extensionHint as the first argument") return ExitCode.COMPILATION_ERROR } script