in modules/command/src/main/java/org/apache/fluo/command/FluoProgram.java [39:74]
public static void runFluoCommand(List<FluoCommand> fluoCommands, String[] args) {
JCommander.Builder jCommanderBuilder = JCommander.newBuilder();
fluoCommands.forEach(jCommanderBuilder::addCommand);
JCommander jcommand = jCommanderBuilder.build();
try {
jcommand.parse(args);
} catch (ParameterException e) {
System.err.println(e.getMessage());
String commandName = Optional.ofNullable(jcommand.getParsedCommand()).orElse("");
JCommander parsedJCommandOrProgram =
Optional.ofNullable(jcommand.findCommandByAlias(commandName)).orElse(jcommand);
parsedJCommandOrProgram.setProgramName(String.format("fluo %s", commandName));
parsedJCommandOrProgram.usage();
throw e;
}
String parsedCommandType = jcommand.getParsedCommand();
JCommander parsedJCommand = jcommand.findCommandByAlias(parsedCommandType);
String programName = String.format("fluo %s", parsedCommandType);
parsedJCommand.setProgramName(programName);
FluoCommand parsedFluoCommand =
(FluoCommand) parsedJCommand.getObjects().stream().collect(MoreCollectors.onlyElement());
if (parsedFluoCommand.isHelp()) {
parsedJCommand.usage();
return;
}
try {
parsedFluoCommand.execute();
} catch (FluoCommandException e) {
System.err.println(String.format("%s failed - %s", programName, e.getMessage()));
throw e;
}
}