コード例 #1
14
ファイル: main.cpp プロジェクト: arpu/Cumulus
	void defineOptions(OptionSet& options) {
		ServerApplication::defineOptions(options);

		options.addOption(
			Option("log", "l", "Log level argument, must be beetween 0 and 8 : nothing, fatal, critic, error, warn, note, info, debug, trace. Default value is 6 (info), all logs until info level are displayed.")
				.required(false)
				.argument("level")
				.repeatable(false));

		options.addOption(
			Option("dump", "d", "Enables packet traces in logs. Optional arguments are 'middle' or 'all' respectively to displays just middle packet process or all packet process. If no argument is given, just outside packet process will be dumped.",false,"middle|all",false)
				.repeatable(false));

		options.addOption(
			Option("cirrus", "c", "Cirrus address to activate a 'man-in-the-middle' developer mode in bypassing flash packets to the official cirrus server of your choice, it's a instable mode to help Cumulus developers, \"p2p.rtmfp.net:10000\" for example. By adding the 'dump' argument, you will able to display Cirrus/Flash packet exchange in your logs (see 'dump' argument).",false,"address",true)
				.repeatable(false));

		options.addOption(
			Option("middle", "m","Enables a 'man-in-the-middle' developer mode between two peers. It's a instable mode to help Cumulus developers. By adding the 'dump' argument, you will able to display Flash/Flash packet exchange in your logs (see 'dump' argument).")
				.repeatable(false));

		options.addOption(
			Option("help", "h", "Displays help information about command-line usage.")
				.required(false)
				.repeatable(false));
	}
コード例 #2
0
ファイル: FileTransferApp.cpp プロジェクト: lulurun/fanni
	void defineOptions(OptionSet& options)
	{
		ServerApplication::defineOptions(options);

		options.addOption(
			Option("help", "h", "display help information on command line arguments")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<FileTransferApp>(this, &FileTransferApp::handleHelp)));
		options.addOption(
			Option("server", "S", "running in server mode")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<FileTransferApp>(this, &FileTransferApp::startServer)));
		options.addOption(
			Option("host", "H", "IP of FileTransfer server")
				.required(false)
				.repeatable(false)
				.argument("IP address (x.x.x.x)")
				.callback(OptionCallback<FileTransferApp>(this, &FileTransferApp::setHost)));
		options.addOption(
			Option("port", "P", "Port of FileTransfer server")
				.required(false)
				.repeatable(false)
				.argument("port number")
				.callback(OptionCallback<FileTransferApp>(this, &FileTransferApp::setPort)));
		options.addOption(
			Option("file", "F", "file path to transfer")
				.required(false)
				.repeatable(false)
				.argument("file")
				.callback(OptionCallback<FileTransferApp>(this, &FileTransferApp::setFile)));
	}
コード例 #3
0
ファイル: un7zip.cpp プロジェクト: micheleselea/poco
	void defineOptions(OptionSet& options)
	{
		Application::defineOptions(options);

		options.addOption(
			Option("help", "h", "Display help information on command line arguments.")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<Un7zipApp>(this, &Un7zipApp::handleHelp)));

		options.addOption(
			Option("output", "o", "Specify base directory for extracted files.")
				.required(false)
				.repeatable(false)
				.argument("path")
				.callback(OptionCallback<Un7zipApp>(this, &Un7zipApp::handleOutput)));
				
		options.addOption(
			Option("list", "l", "List files and directories in archive.")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<Un7zipApp>(this, &Un7zipApp::handleList)));

		options.addOption(
			Option("extract", "x", "Extract single file or entire archive.")
				.required(false)
				.repeatable(false)
				.argument("file", false)
				.callback(OptionCallback<Un7zipApp>(this, &Un7zipApp::handleExtract)));
	}
コード例 #4
0
ファイル: TweetApp.cpp プロジェクト: 119/vdc
	void defineOptions(OptionSet& options)
	{
		Application::defineOptions(options);

		options.addOption(
			Option("help", "h", "display help information on command line arguments")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<TweetApp>(this, &TweetApp::handleHelp)));

		options.addOption(
			Option("username", "u", "specify the Twitter user/account name")
				.required(true)
				.repeatable(false)
				.argument("account")
				.callback(OptionCallback<TweetApp>(this, &TweetApp::handleUsername)));
				
		options.addOption(
			Option("password", "p", "specify the Twitter password")
				.required(true)
				.repeatable(false)
				.argument("password")
				.callback(OptionCallback<TweetApp>(this, &TweetApp::handlePassword)));

		options.addOption(
			Option("message", "m", "specify the status message")
				.required(false)
				.repeatable(true)
				.argument("message")
				.callback(OptionCallback<TweetApp>(this, &TweetApp::handleMessage)));
	}
コード例 #5
0
ファイル: check_ortho.cpp プロジェクト: geoin/ControlloVoliRT
void check_ortho::defineOptions(OptionSet& options)
{
	Application::defineOptions(options);

	options.addOption(
		Option("help", "h", "mostra le informazioni sui parametri da specificare")
			.required(false)
			.repeatable(false)
			.callback(OptionCallback<check_ortho>(this, &check_ortho::handleHelp)));

		
	options.addOption(
		Option("dir", "d", "Specifica la cartella del progetto")
			.required(false)
			.repeatable(false)
			.argument("value")
			.callback(OptionCallback<check_ortho>(this, &check_ortho::handlePrjDir)));
	
	options.addOption(
		Option("img", "i", "Specifica la cartella delle ortho immagini")
			.required(false)
			.repeatable(false)
			.argument("value")
			.callback(OptionCallback<check_ortho>(this, &check_ortho::handleImgDir)));
	
	//options.addOption(
	//	Option("scale", "s", "Specifica la scala di lavoro")
	//		.required(false)
	//		.repeatable(false)
	//		.argument("value")
	//		.callback(OptionCallback<check_ortho>(this, &check_ortho::handleScale)));
}
コード例 #6
0
	void defineOptions(OptionSet& options)
	{
		Application::defineOptions(options);

		options.addOption(
			Option("help", "h", "display help information on command line arguments")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<configuracao>(this, &configuracao::handleHelp)));

		options.addOption(
			Option("define", "D", "define a configuration property")
				.required(false)
				.repeatable(true)
				.argument("name=value")
				.callback(OptionCallback<configuracao>(this, &configuracao::handleDefine)));
				
		options.addOption(
			Option("config-file", "f", "load configuration data from a file")
				.required(false)
				.repeatable(true)
				.argument("file")
				.callback(OptionCallback<configuracao>(this, &configuracao::handleConfig)));

		options.addOption(
			Option("bind", "b", "bind option value to test.property")
				.required(false)
				.repeatable(false)
				.argument("value")
				.binding("test.property"));
	}
コード例 #7
0
ファイル: BeeServer.cpp プロジェクト: hellowego/BEE
void BeeServer::defineOptions(OptionSet& options)
{
	ServerApplication::defineOptions(options);

	options.addOption(
		Option("help", "h", "display help information on command line arguments")
		.required(false)
		.repeatable(false)
		.callback(OptionCallback<BeeServer>(this, &BeeServer::handleHelp)));

	options.addOption(
		Option("stop", "stop", "stop process.")
		.required(false)
		.repeatable(false)
		.argument("taskids w/o arguments", false)
		.callback(OptionCallback<BeeServer>(this, &BeeServer::stop)));

	options.addOption(
		Option("start", "start", "start process.")
		.required(false)
		.repeatable(false)
		.argument("taskids w/o arguments", false)
		.callback(OptionCallback<BeeServer>(this, &BeeServer::start)));

	options.addOption(
		Option("query", "q", "query process state.")
		.required(false)
		.repeatable(false)
		.argument("taskids w/o arguments", false)
		.callback(OptionCallback<BeeServer>(this, &BeeServer::query)));
}
コード例 #8
0
void HelpFormatterTest::testHelpFormatter()
{
	OptionSet set;
	set.addOption(
		Option("include-dir", "I", "specify a search path for locating header files")
			.required(false)
			.repeatable(true)
			.argument("path"));
			
	set.addOption(
		Option("library-dir", "L", "specify a search path for locating library files (this option has a very long description)")
			.required(false)
			.repeatable(true)
			.argument("path"));

	set.addOption(
		Option("output", "o", "specify the output file", true)
			.argument("file", true));

	set.addOption(
		Option("verbose", "v")
		.description("enable verbose mode")
		.required(false)
		.repeatable(false));
		
	set.addOption(
		Option("optimize", "O")
		.description("enable optimization")
		.required(false)
		.repeatable(false)
		.argument("level", false));

	HelpFormatter formatter(set);
	formatter.format(std::cout);
	
	formatter.setCommand("cc");
	formatter.format(std::cout);
	
	formatter.setUsage("OPTIONS FILES");
	formatter.setHeader("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. "
		"Vivamus volutpat imperdiet massa. Nulla at ipsum vitae risus facilisis posuere. "
		"Cras convallis, lacus ac vulputate convallis, metus nisl euismod ligula, "
		"ac euismod diam wisi in dolor.\nMauris vitae leo.");
	formatter.setFooter("Cras semper mollis tellus. Mauris eleifend mauris et lorem. "
		"Etiam odio dolor, fermentum quis, mollis nec, sodales sed, tellus. "
		"Quisque consequat orci eu augue. Aliquam ac nibh ac neque hendrerit iaculis.");
	formatter.format(std::cout);
	
	formatter.setUnixStyle(false);
	formatter.format(std::cout);
	
	formatter.setHeader("");
	formatter.setFooter("tab: a\tb\tcde\tf\n\ta\n\t\tb");
	formatter.format(std::cout);
}
コード例 #9
0
//============================================================================//
void SmitlabService::defineOptions(OptionSet& options)
{

    ServerApplication::defineOptions(options);

    options.addOption(Option("help",        "h",
        "display help information for command line arguments"));

    options.addOption(Option("config-file", "f",
        "load configuration data from a file", false, "path", true));

}
コード例 #10
0
	void defineOptions(OptionSet& options) {
		Application::defineOptions(options);
		options.addOption(
			Option("help", "h", "display help information")
			.required(false)
			.repeatable(false)
			.callback(OptionCallback<WebSocketClient>(this, &WebSocketClient::HandleHelp)));

		options.addOption(
			Option("uri", "u", "Address to server e.g. ws://127.0.0.1:3001/")
			.required(true)
			.repeatable(false)
			.argument("addr")
			.callback(OptionCallback<WebSocketClient>(this, &WebSocketClient::HandleURI)));
	}
コード例 #11
0
ファイル: ServerApplication.cpp プロジェクト: beneon/MITK
void ServerApplication::defineOptions(OptionSet& options)
{
	Application::defineOptions(options);

	options.addOption(
		Option("daemon", "", "run application as a daemon")
			.required(false)
			.repeatable(false));

	options.addOption(
		Option("pidfile", "", "write PID to given file")
			.required(false)
			.repeatable(false)
			.argument("path"));
}
コード例 #12
0
ファイル: pkill.cpp プロジェクト: 12307/poco
	void defineOptions(OptionSet& options)
	{
		Application::defineOptions(options);

		options.addOption(
			Option("help", "h", "Display help information on command line arguments.")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<ProcessKillerApp>(this, &ProcessKillerApp::handleHelp)));

		options.addOption(
			Option("friendly", "f", "Kindly ask application to shut down.")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<ProcessKillerApp>(this, &ProcessKillerApp::handleFriendly)));
	}
コード例 #13
0
ファイル: HTMLRegex.cpp プロジェクト: gazzyt/HTMLRegex
	void defineOptions(OptionSet& options)
	{
		options.addOption(
			Option("help", "h", "display help")
			.required(false)
			.repeatable(false)
			);
	}
コード例 #14
0
ファイル: zip.cpp プロジェクト: leandrocprates/projecteste
	void defineOptions(OptionSet& options)
	{
		Application::defineOptions(options);

		options.addOption(
			Option("help", "h", "display help information on command line arguments")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<ZipApp>(this, &ZipApp::handleHelp)));

		options.addOption(
			Option("file", "f", "specifies the output zip file")
				.required(true)
				.repeatable(false)
				.argument("filename")
				.callback(OptionCallback<ZipApp>(this, &ZipApp::handleFile)));
	}
コード例 #15
0
void ComputeApp::createOption(OptionSet& options, OptionsCallback handler, std::string arg, std::string shorthand)
{
    OptionCallback<ComputeApp> optionCallback(this, handler);
    Option option(arg, shorthand, "", false);
    option.callback(optionCallback);
    option.repeatable(false);
    options.addOption(option);
}
コード例 #16
0
	void defineOptions(OptionSet& options) {
		ServerApplication::defineOptions(options);

		options.addOption(
				Option("help", "h",	"display help information on command line arguments")
				.required(false)
				.repeatable(false));
	}
コード例 #17
0
ファイル: ServerApplication.cpp プロジェクト: 119/vdc
void ServerApplication::defineOptions(OptionSet& options)
{
	Application::defineOptions(options);

	options.addOption(
		Option("daemon", "", "Run application as a daemon.")
			.required(false)
			.repeatable(false)
			.callback(OptionCallback<ServerApplication>(this, &ServerApplication::handleDaemon)));

	options.addOption(
		Option("pidfile", "", "Write the process ID of the application to given file.")
			.required(false)
			.repeatable(false)
			.argument("path")
			.callback(OptionCallback<ServerApplication>(this, &ServerApplication::handlePidFile)));
}
コード例 #18
0
ファイル: Program.cpp プロジェクト: CDTeam/Siri-Proxy
	void defineOptions(OptionSet& options)
	{
		ServerApplication::defineOptions(options);

		options.addOption(
			Option("help", "h", "显示命令行帮助") 
			.required(false)
			.repeatable(false));
	}
コード例 #19
0
ファイル: uarc_rmemd.cpp プロジェクト: timercrack/uarc
void UarcRmemdServer::defineOptions(OptionSet & options)
{
	ServerApplication::defineOptions(options);

	options.addOption(Option("help", "h", "display help information on command line arguments")
			.required(false)
			.repeatable(false)
			.callback(OptionCallback<UarcRmemdServer>(this, &UarcRmemdServer::handleHelp)));
}
コード例 #20
0
    void defineOptions(OptionSet& options)
    {
        Application::defineOptions(options);

        options.addOption(
            Option("help", "h", "display help information on command line arguments")
                .required(false)
                .repeatable(false)
                .callback(OptionCallback<BundleContainerApplication>(
                	this, &BundleContainerApplication::handleHelp)));

        options.addOption(
            Option("config-file", "f", "load configuration data from a file")
                .required(false)
                .repeatable(true)
                .argument("file")
                .callback(OptionCallback<BundleContainerApplication>(
                	this, &BundleContainerApplication::handleConfig)));
    }
コード例 #21
0
	void defineOptions(OptionSet& options)
	{
		Application::defineOptions(options);

		options.addOption(
			Option("help", "h", "Display help information on command line arguments.")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<StripBundle>(this, &StripBundle::handleHelp)));
	}
コード例 #22
0
ファイル: ServerApplication.cpp プロジェクト: beneon/MITK
void ServerApplication::defineOptions(OptionSet& options)
{
	Application::defineOptions(options);

	options.addOption(
		Option("registerService", "", "register application as a service")
			.required(false)
			.repeatable(false));

	options.addOption(
		Option("unregisterService", "", "unregister application as a service")
			.required(false)
			.repeatable(false));

	options.addOption(
		Option("displayName", "", "specify a display name for the service (only with /registerService)")
			.required(false)
			.repeatable(false)
			.argument("name"));
}
コード例 #23
0
void BasicApplication::defineOptions(OptionSet& options)
{
    Application::defineOptions(options);

    options.addOption(Option("echo", "A", 
        "Echo the command that was used to start this application.",
        false));
    options.addOption(Option("config", "C",
        "Specifies a config file to use instead of "
        "blissart-dir/etc/blissart.properties",
        false, "<filename>", true));
    options.addOption(Option("storage-dir", "G",
        "Specifies a directory to use for component storage, instead "
        "of blissart-dir/storage",
        false, "<directory>", true));
    options.addOption(Option("db-file", "D",
        "Specifies a database file to use for component storage, instead "
        "of blissart-dir/db/openBliSSART.db",
        false, "<filename>", true));
}
コード例 #24
0
void SmartDeamonApplication::defineOptions(OptionSet& options) {
	ServerApplication::defineOptions(options);

	Option helpOption("help", "h", "display argument help information");
	helpOption.required(false);
	helpOption.repeatable(false);
	OptionCallback<SmartDeamonApplication> helpOptionCallback(this, &SmartDeamonApplication::handleHelp);
	helpOption.callback(helpOptionCallback);
	options.addOption(helpOption);

}
コード例 #25
0
ファイル: LoadTest.cpp プロジェクト: wanweihua/online
void LoadTest::defineOptions(OptionSet& optionSet)
{
    Application::defineOptions(optionSet);

    optionSet.addOption(Option("help", "", "Display help information on command line arguments.")
                        .required(false)
                        .repeatable(false));

    optionSet.addOption(Option("doclist", "", "file containing URIs or pathnames of documents to load, - for stdin")
                        .required(true)
                        .repeatable(false)
                        .argument("file"));

    optionSet.addOption(Option("numclients", "", "number of simultaneous clients to simulate")
                        .required(false)
                        .repeatable(false)
                        .argument("number"));

    optionSet.addOption(Option("numdocs", "", "number of sequential documents per client")
                        .required(false)
                        .repeatable(false)
                        .argument("number"));

    optionSet.addOption(Option("duration", "", "duration in hours")
                        .required(false)
                        .repeatable(false)
                        .argument("hours"));

    optionSet.addOption(Option("server", "", "URI of LOOL server")
                        .required(false)
                        .repeatable(false)
                        .argument("uri"));
}
コード例 #26
0
ファイル: Config.cpp プロジェクト: LibreOffice/online
void Config::defineOptions(OptionSet& optionSet)
{
    Application::defineOptions(optionSet);

    optionSet.addOption(Option("help", "h", "Show this usage information.")
                        .required(false)
                        .repeatable(false));
    optionSet.addOption(Option("config-file", "", "Specify configuration file path manually.")
                        .required(false)
                        .repeatable(false)
                        .argument("path"));

    optionSet.addOption(Option("pwd-salt-length", "", "Length of the salt to use to hash password [set-admin-password].")
                        .required(false)
                        .repeatable(false).
                        argument("number"));
    optionSet.addOption(Option("pwd-iterations", "", "Number of iterations to do in PKDBF2 password hashing [set-admin-password].")
                        .required(false)
                        .repeatable(false)
                        .argument("number"));
    optionSet.addOption(Option("pwd-hash-length", "", "Length of password hash to generate [set-admin-password].")
                        .required(false)
                        .repeatable(false)
                        .argument("number"));

#if ENABLE_SUPPORT_KEY
    optionSet.addOption(Option("support-key", "", "Specify the support key [set-support-key].")
                        .required(false)
                        .repeatable(false)
                        .argument("key"));
#endif
}
コード例 #27
0
	void defineOptions(OptionSet& options)
	{
		Poco::Util::Application::defineOptions(options);
		
		options.addOption(
			Option("help", "h", "Display help information on command line arguments.")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<WebTunnelVNC>(this, &WebTunnelVNC::handleHelp)));

		options.addOption(
			Option("config-file", "c", "Load configuration data from a file.")
				.required(false)
				.repeatable(true)
				.argument("file")
				.callback(OptionCallback<WebTunnelVNC>(this, &WebTunnelVNC::handleConfig)));

		options.addOption(
			Option("local-port", "L", "Specify local port number (default: ephemeral).")
				.required(false)
				.repeatable(false)
				.argument("port")
				.validator(new Poco::Util::IntValidator(1, 65535))
				.callback(OptionCallback<WebTunnelVNC>(this, &WebTunnelVNC::handleLocalPort)));

		options.addOption(
			Option("remote-port", "R", "Specify remote port number (default: VNC/5900).")
				.required(false)
				.repeatable(false)
				.argument("port")
				.validator(new Poco::Util::IntValidator(1, 65535))
				.callback(OptionCallback<WebTunnelVNC>(this, &WebTunnelVNC::handleRemotePort)));

		options.addOption(
			Option("username", "u", "Specify username for reflector server.")
				.required(false)
				.repeatable(false)
				.argument("username")
				.callback(OptionCallback<WebTunnelVNC>(this, &WebTunnelVNC::handleUsername)));

		options.addOption(
			Option("password", "p", "Specify password for reflector server.")
				.required(false)
				.repeatable(false)
				.argument("password")
				.callback(OptionCallback<WebTunnelVNC>(this, &WebTunnelVNC::handlePassword)));

		options.addOption(
			Option("define", "D", "Define or override a configuration property.")
				.required(false)
				.repeatable(true)
				.argument("name=value")
				.callback(OptionCallback<WebTunnelVNC>(this, &WebTunnelVNC::handleDefine)));
	}
コード例 #28
0
ファイル: Plugin.cpp プロジェクト: subutai-io/gitbin
void Plugin::defineOptions(OptionSet& options)
{
    //    ServerApplication::defineOptions(options);
    options.addOption(
            Option("help", "h", "display argument help information")
            .required(false)
            .repeatable(false)
            .callback(OptionCallback<Plugin>(
                    this, &Plugin::handleHelp)));

    options.addOption(
            Option("init", "", "initialize keshig subsystem in current directory")
            .required(false)
            .repeatable(false)
            .argument("ssh url")
            .callback(OptionCallback<Plugin>(
                    this, &Plugin::handleInit)));

    options.addOption(
            Option("check", "c", "iterates all subdirectories and checks for binary and large files")
            .required(false)
            .repeatable(false)
            .callback(OptionCallback<Plugin>(
                    this, &Plugin::handleCheck)));

    options.addOption(
            Option("status", "s", "display status of files that is tracket by git-bin")
            .required(false)
            .repeatable(false)
            .callback(OptionCallback<Plugin>(
                    this, &Plugin::handleStatus)));

    options.addOption(
            Option("list", "l", "lists all files that is tracked by keshig")
            .required(false)
            .repeatable(false)
            .callback(OptionCallback<Plugin>(
                    this, &Plugin::handleList)));

    options.addOption(
            Option("add", "", "adds file into repository")
            .required(false)
            .repeatable(false)
            .argument("filepath")
            .callback(OptionCallback<Plugin>(
                    this, &Plugin::handleAdd)));

    options.addOption(
            Option("sync", "", "syncs files")
            .required(false)
            .repeatable(false)
            .callback(OptionCallback<Plugin>(
                    this, &Plugin::handleSync)));
}
コード例 #29
0
ファイル: File2Page.cpp プロジェクト: BrianHoldsworth/Poco
	void defineOptions(OptionSet& options)
	{
		Application::defineOptions(options);

		options.addOption(
			Option("help", "h", "display help information on command line arguments")
				.required(false)
				.repeatable(false)
				.callback(OptionCallback<File2PageApp>(this, &File2PageApp::handleHelp)));

		options.addOption(
			Option("contentType", "t", "specify a content type")
				.required(false)
				.repeatable(false)
				.argument("MIME-Type")
				.callback(OptionCallback<File2PageApp>(this, &File2PageApp::handleContentType)));
				
		options.addOption(
			Option("class", "c", "specify the handler class name")
				.required(false)
				.repeatable(false)
				.argument("class-name")
				.callback(OptionCallback<File2PageApp>(this, &File2PageApp::handleClassName)));

		options.addOption(
			Option("namespace", "n", "specify the handler class namespace name")
				.required(false)
				.repeatable(false)
				.argument("namespace-name")
				.callback(OptionCallback<File2PageApp>(this, &File2PageApp::handleNamespace)));
	
		options.addOption(
			Option("output", "o", "specify the output file name")
				.required(false)
				.repeatable(false)
				.argument("path")
				.callback(OptionCallback<File2PageApp>(this, &File2PageApp::handleOutput)));
}
コード例 #30
0
ファイル: DocProcessor.cpp プロジェクト: khayk/mygithub
void DocProcessor::defineOptions( OptionSet& options )
{
    Application::defineOptions(options);

    options.addOption(
        Option("help", "h", "display help information on command line arguments")
        .required(false)
        .repeatable(false)
        .callback(OptionCallback<DocProcessor>(this, &DocProcessor::handleHelp)));

    options.addOption(
        Option("input", "i", "bind option value to input.folder")
        .required(true)
        .repeatable(false)
        .argument("value")
        .binding("input.folder"));

    options.addOption(
        Option("output", "o", "bind option value to output.folder")
        .required(true)
        .repeatable(false)
        .argument("value")
        .binding("output.folder"));

    options.addOption(
        Option("mapping", "m", "bind option value to mapping.folder")
        .required(true)
        .repeatable(false)
        .argument("value")
        .binding("mapping.folder"));

    options.addOption(
        Option("working-mode", "w", "bind option value to working.mode")
        .required(true)
        .repeatable(false)
        .argument("value")
        .binding("working.mode"));
}