Skip to content

Commit a024f71

Browse files
committed
Normalize commands and add help/version
1 parent 05bb3d8 commit a024f71

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed

log4j-transform-cli/src/main/java/org/apache/logging/log4j/transform/cli/ConfigurationFileCommands.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,32 @@
3232
import java.util.concurrent.Callable;
3333
import org.apache.logging.converter.config.ConfigurationConverter;
3434
import org.jspecify.annotations.Nullable;
35+
import picocli.CommandLine;
3536
import picocli.CommandLine.Command;
3637
import picocli.CommandLine.Option;
3738
import picocli.CommandLine.Parameters;
3839

3940
@Command(
40-
name = "configFile",
41+
name = "config-file",
4142
description = "Handles the transformation of logging configuration files.",
42-
subcommands = {ConfigurationFileCommands.Convert.class, ConfigurationFileCommands.ListFormats.class})
43-
class ConfigurationFileCommands {
43+
mixinStandardHelpOptions = true,
44+
subcommands = {ConfigurationFileCommands.Convert.class, ConfigurationFileCommands.ListFormats.class},
45+
versionProvider = Main.VersionProvider.class)
46+
public final class ConfigurationFileCommands {
4447

4548
private static final int PADDING_SIZE = 2;
4649

47-
@Command(name = "listFormats", description = "Lists the supported configuration file formats.")
50+
public static void main(final String[] args) {
51+
System.exit(new CommandLine(ConfigurationFileCommands.class).execute(args));
52+
}
53+
54+
private ConfigurationFileCommands() {}
55+
56+
@Command(
57+
name = "list-formats",
58+
description = "Lists the supported configuration file formats.",
59+
mixinStandardHelpOptions = true,
60+
versionProvider = Main.VersionProvider.class)
4861
static class ListFormats implements Callable<Integer> {
4962

5063
private final ConfigurationConverter converter = ConfigurationConverter.getInstance();
@@ -100,7 +113,11 @@ private static List<? extends CharSequence> formatRows(Collection<SupportedForma
100113
}
101114
}
102115

103-
@Command(name = "convert", description = "Converts a logging configuration file to a different format.")
116+
@Command(
117+
name = "convert",
118+
description = "Converts a logging configuration file to a different format.",
119+
mixinStandardHelpOptions = true,
120+
versionProvider = Main.VersionProvider.class)
104121
static class Convert implements Callable<Integer> {
105122

106123
private final ConfigurationConverter converter = ConfigurationConverter.getInstance();

log4j-transform-cli/src/main/java/org/apache/logging/log4j/transform/cli/Main.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,24 @@
2222
@Command(
2323
name = "log4j-transform-cli",
2424
description = "Provides several utilities that transform Log4j-related files.",
25-
subcommands = {ConfigurationFileCommands.class})
25+
mixinStandardHelpOptions = true,
26+
subcommands = ConfigurationFileCommands.class,
27+
versionProvider = Main.VersionProvider.class)
2628
public final class Main {
2729

2830
public static void main(final String[] args) {
2931
System.exit(new CommandLine(Main.class).execute(args));
3032
}
3133

3234
private Main() {}
35+
36+
static class VersionProvider implements CommandLine.IVersionProvider {
37+
38+
@Override
39+
public String[] getVersion() {
40+
return new String[] {
41+
"log4j-transform-cli " + Main.class.getPackage().getImplementationVersion()
42+
};
43+
}
44+
}
3345
}

0 commit comments

Comments
 (0)