mirror of
https://codeberg.org/PGPainless/sop-java.git
synced 2024-12-22 12:57:57 +01:00
Kotlin conversion: SOPExecutionExceptionHandler
This commit is contained in:
parent
5c2695228b
commit
0c2cf5cb19
2 changed files with 34 additions and 33 deletions
|
@ -1,33 +0,0 @@
|
||||||
// SPDX-FileCopyrightText: 2021 Paul Schaub <vanitasvitae@fsfe.org>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package sop.cli.picocli;
|
|
||||||
|
|
||||||
import picocli.CommandLine;
|
|
||||||
|
|
||||||
public class SOPExecutionExceptionHandler implements CommandLine.IExecutionExceptionHandler {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int handleExecutionException(Exception ex, CommandLine commandLine, CommandLine.ParseResult parseResult) {
|
|
||||||
|
|
||||||
int exitCode = commandLine.getExitCodeExceptionMapper() != null ?
|
|
||||||
commandLine.getExitCodeExceptionMapper().getExitCode(ex) :
|
|
||||||
commandLine.getCommandSpec().exitCodeOnExecutionException();
|
|
||||||
|
|
||||||
CommandLine.Help.ColorScheme colorScheme = commandLine.getColorScheme();
|
|
||||||
// CHECKSTYLE:OFF
|
|
||||||
if (ex.getMessage() != null) {
|
|
||||||
commandLine.getErr().println(colorScheme.errorText(ex.getMessage()));
|
|
||||||
} else {
|
|
||||||
commandLine.getErr().println(ex.getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (SopCLI.stacktrace) {
|
|
||||||
ex.printStackTrace(commandLine.getErr());
|
|
||||||
}
|
|
||||||
// CHECKSTYLE:ON
|
|
||||||
|
|
||||||
return exitCode;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
// SPDX-FileCopyrightText: 2023 Paul Schaub <vanitasvitae@fsfe.org>
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
package sop.cli.picocli
|
||||||
|
|
||||||
|
import picocli.CommandLine
|
||||||
|
import picocli.CommandLine.IExecutionExceptionHandler
|
||||||
|
|
||||||
|
class SOPExecutionExceptionHandler : IExecutionExceptionHandler {
|
||||||
|
override fun handleExecutionException(
|
||||||
|
ex: Exception,
|
||||||
|
commandLine: CommandLine,
|
||||||
|
parseResult: CommandLine.ParseResult
|
||||||
|
): Int {
|
||||||
|
val exitCode =
|
||||||
|
if (commandLine.exitCodeExceptionMapper != null)
|
||||||
|
commandLine.exitCodeExceptionMapper.getExitCode(ex)
|
||||||
|
else commandLine.commandSpec.exitCodeOnExecutionException()
|
||||||
|
|
||||||
|
val colorScheme = commandLine.colorScheme
|
||||||
|
if (ex.message != null) {
|
||||||
|
commandLine.getErr().println(colorScheme.errorText(ex.message))
|
||||||
|
} else {
|
||||||
|
commandLine.getErr().println(ex.javaClass.getName())
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SopCLI.stacktrace) {
|
||||||
|
ex.printStackTrace(commandLine.getErr())
|
||||||
|
}
|
||||||
|
|
||||||
|
return exitCode
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue