public static void runFluoCommand()

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;
    }
  }