Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
CmdOptions.java 2.49 KiB
package de.vipra.cmd;

import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;

public class CmdOptions extends Options {

	private static final long serialVersionUID = 1L;

	public static final String OPT_HELP = "h";
	public static final String OPT_HELP_LONG = "help";

	public static final String OPT_IMPORT = "i";
	public static final String OPT_IMPORT_LONG = "import";

	public static final String OPT_SHELL = "x";
	public static final String OPT_SHELL_LONG = "shell";

	public static final String OPT_CLEAR = "c";
	public static final String OPT_CLEAR_LONG = "clear";

	public static final String OPT_STATS = "p";
	public static final String OPT_STATS_LONG = "print-stats";

	public static final String OPT_DEFAULTS = "n";
	public static final String OPT_DEFAULTS_LONG = "defaults";

	public static final String OPT_DEBUG = "d";
	public static final String OPT_DEBUG_LONG = "debug";

	public static final String OPT_TEST = "t";
	public static final String OPT_TEST_LONG = "test";

	public static final String OPT_SILENT = "s";
	public static final String OPT_SILENT_LONG = "silent";

	public static final String OPT_CONFIG = "o";
	public static final String OPT_CONFIG_LONG = "config";

	public CmdOptions() {
		addOption(Option.builder(OPT_HELP).longOpt(OPT_HELP_LONG).desc("print this message").build());
		addOption(Option.builder(OPT_SHELL).longOpt(OPT_SHELL_LONG).hasArg(true).argName("name")
				.desc("run from a shell script").build());
		addOption(Option.builder(OPT_IMPORT).longOpt(OPT_IMPORT_LONG).hasArgs().argName("files/dirs...")
				.desc("import articles into the database").build());
		addOption(Option.builder(OPT_CLEAR).longOpt(OPT_CLEAR_LONG).desc("clear database and filebase").build());
		addOption(Option.builder(OPT_STATS).longOpt(OPT_STATS_LONG).desc("gather database and filebase information")
				.build());
		addOption(Option.builder(OPT_DEFAULTS).longOpt(OPT_DEFAULTS_LONG).desc("accept default decisions").build());
		addOption(Option.builder(OPT_DEBUG).longOpt(OPT_DEBUG_LONG).desc("show debug information").build());
		addOption(Option.builder(OPT_TEST).longOpt(OPT_TEST_LONG).desc("system tests").build());
		addOption(Option.builder(OPT_SILENT).longOpt(OPT_SILENT_LONG).desc("mute all output").build());
		addOption(Option.builder(OPT_CONFIG).longOpt(OPT_CONFIG_LONG).desc("show configuration").build());
	}

	public void printHelp(String cmd) {
		HelpFormatter formatter = new HelpFormatter();
		formatter.printHelp(cmd, this, true);
	}

}