private static Config applyArgsToConfig(
final String[] args, final Config config, final String initialStepId) {
try {
argsWithAliases(args, config).forEach(config::val);
} catch (final IllegalArgumentNameException e) {
final String formattedAllCliArgs =
allCliArgs(config.schema(), config.pathSep()).stream()
.collect(Collectors.joining("\n", "\t", ""));
Loggers.ERR.fatal(
"Invalid argument: \"{}\"\nThe list of all possible args:\n{}",
e.getMessage(),
formattedAllCliArgs);
} catch (final InvalidValuePathException e) {
Loggers.ERR.fatal("Invalid configuration option: \"{}\"", e.path());
} catch (final InvalidValueTypeException e) {
Loggers.ERR.fatal(
"Invalid configuration value type for the option \"{}\", expected: {}, " + "actual: {}",
e.path(),
e.expectedType(),
e.actualType());
}
checkAndSetStepId(config, initialStepId);
Arrays.stream(args).forEach(Loggers.CLI::info);
return config;
}