Ненулевой код выхода для отсутствующего параметра с picocli - PullRequest
0 голосов
/ 28 марта 2019

У меня есть простой Command с одним обязательным параметром:

@Parameters(index = "0", description = "manifest")
private File manifest;

Когда я вызываю его из командной строки без параметра, я получаю ожидаемое сообщение:

Missing required parameter: <manifest>
Usage ....

НО: код возврата для вызова java равен 0, что означает, что все прошло нормально.Есть ли способ заставить picocli возвращать ненулевой код, если параметр (или опция) отсутствует / неверен?

1 Ответ

1 голос
/ 29 марта 2019

Да, это возможно.Следующая программа завершит работу с кодом выхода 456, если пользователь предоставил неверный ввод:

@Command
class ExitCodeDemo implements Runnable {
    @Parameters(index = "0", description = "manifest")
    private File manifest;

    public void run() { 
        // business logic here
    }

    public static void main(String... args) {
        CommandLine cmd = new CommandLine(new ExitCodeDemo());
        cmd.parseWithHandlers(
                new RunLast(),
                CommandLine.defaultExceptionHandler().andExit(456),
                args);
    }
}

Есть планы по добавлению лучшей поддержки кода выхода в picocli в версии 4.0.

...