in daemon/src/main/java/org/apache/maven/cli/CommonsCliDaemonMavenOptions.java [59:135]
public void displayHelp(String command, Consumer<String> pw) {
List<String> mvnHelp = new ArrayList<>();
super.displayHelp(command, mvnHelp::add);
final Matcher m = COLUMNS_DETECTOR_PATTERN.matcher(String.join("\n", mvnHelp));
final String indent = m.find() ? m.group() : " ";
int terminalWidth = getTerminalWidth() <= 0 ? 74 : getTerminalWidth();
final String lineSeparator = System.lineSeparator();
final StringBuilder help = new StringBuilder().append(lineSeparator).append("mvnd specific options:");
Environment.documentedEntries().forEach(entry -> {
final Environment env = entry.getEntry();
help.append(lineSeparator);
int indentPos = help.length() + indent.length();
int lineEnd = help.length() + terminalWidth;
spaces(help, HelpFormatter.DEFAULT_LEFT_PAD);
final String property = env.getProperty();
if (property != null) {
help.append("-D").append(property);
if (env.getType() != OptionType.VOID) {
help.append("=<")
.append(env.getType().name().toLowerCase(Locale.ROOT))
.append('>');
}
}
final Set<String> opts = env.getOptions();
if (!opts.isEmpty()) {
if (property != null) {
help.append(';');
}
boolean first = true;
for (String opt : opts) {
if (first) {
first = false;
} else {
help.append(',');
}
help.append(opt);
}
if (env.getType() != OptionType.VOID) {
help.append(" <")
.append(env.getType().name().toLowerCase(Locale.ROOT))
.append('>');
}
}
help.append(' ');
spaces(help, indentPos - help.length());
wrap(help, toPlainText(entry.getJavaDoc()), terminalWidth, lineEnd, indent);
if (env.isDocumentedAsDiscriminating()) {
indentedLine(help, terminalWidth, "This is a discriminating start parameter.", indent);
}
if (env.getDefault() != null) {
indentedLine(help, terminalWidth, "Default: " + env.getDefault(), indent);
}
if (env.getEnvironmentVariable() != null) {
indentedLine(help, terminalWidth, "Env. variable: " + env.getEnvironmentVariable(), indent);
}
});
help.append(lineSeparator).append(lineSeparator).append("mvnd value types:");
OptionType.documentedEntries().forEach(entry -> {
final OptionType type = entry.getEntry();
help.append(lineSeparator);
int indentPos = help.length() + indent.length();
int lineEnd = help.length() + terminalWidth;
spaces(help, HelpFormatter.DEFAULT_LEFT_PAD);
help.append(type.name().toLowerCase(Locale.ROOT));
spaces(help, indentPos - help.length());
wrap(help, toPlainText(entry.getJavaDoc()), terminalWidth, lineEnd, indent);
});
Stream.concat(mvnHelp.stream(), Stream.of(help.toString().split(lineSeparator)))
.forEach(pw);
}