List of usage examples for org.apache.commons.cli OptionBuilder hasArgs
public static OptionBuilder hasArgs()
From source file:sos.scheduler.cron.CrontabFileConverter.java
/** * @param args//from ww w . ja va 2 s . c o m */ public static void main(final String[] args) { Logger logger = Logger.getLogger(CrontabFileConverter.class); @SuppressWarnings("unused") Log4JHelper objLogger = null; objLogger = new Log4JHelper(null); logger = Logger.getRootLogger(); logger.info("SOS CronConverter - Main"); //$NON-NLS-1$ /*try { test(); } catch(Exception ex){ ex.printStackTrace(); } */ try { //SOSArguments arguments = new SOSArguments(args); SOSLogger sosLogger; String sourceFile = ""; String targetFile = ""; String changeUser = ""; File source = null; File target = null; int logLevel = 0; boolean sysTab = false; boolean useOldRunTime = false; String jobTimeout = ""; /* try { sourceFile = arguments.as_string("-crontab="); if (sourceFile.equalsIgnoreCase("/etc/crontab")) sysTab = true; targetFile = arguments.as_string("-target="); logLevel = arguments.as_int("-v=",SOSStandardLogger.INFO); sysTab = arguments.as_bool("-system=",sysTab); useOldRunTime = arguments.as_bool("-oldRunTime=",false); changeUser = arguments.as_string("-change-user=", "su"); } catch (Exception e1) { System.out.println(e1.getMessage()); showUsage(); System.exit(0); }*/ Options options = new Options(); OptionBuilder.withArgName("0|1"); OptionBuilder.hasArg(); OptionBuilder.withDescription("set to 1 if source is the system crontab (with user field)"); Option optSysTab = OptionBuilder.create(conOptionsSYSTAB); OptionBuilder.withArgName("file"); OptionBuilder.hasArgs(); OptionBuilder.isRequired(); OptionBuilder.withDescription("crontab file"); Option optSourceFile = OptionBuilder.create(conOptionCRONTAB); OptionBuilder.withArgName("file"); OptionBuilder.hasArgs(); OptionBuilder.isRequired(); OptionBuilder.withDescription("xml configuration file"); Option optTargetFile = OptionBuilder.create(conOptionTARGET); OptionBuilder.withArgName("level"); OptionBuilder.hasArg(); OptionBuilder.withType(new Integer(0)); OptionBuilder.withDescription("loglevel [0=info] [1=debug1]...[9=debug]"); Option optLogLevel = OptionBuilder.create(conOptionVERBOSE); OptionBuilder.withArgName("command"); OptionBuilder.hasArgs(); OptionBuilder.withDescription( "change user command for -systab=1. 'su' or 'sudo' or define your own command using $SCHEDULER_CRONTAB_USER."); Option optChangeUser = OptionBuilder.create(conOptionCHANGEUSER); OptionBuilder.withArgName("seconds"); OptionBuilder.hasArg(); OptionBuilder.withDescription("job timeout (0 for unlimited"); @SuppressWarnings("unused") Option optTimeOut = OptionBuilder.create(conOptionTIMEOUT); @SuppressWarnings("unused") Option optOldRunTime = new Option("oldRunTime", ""); OptionBuilder.withArgName("true|false"); OptionBuilder.hasArg(); OptionBuilder.withDescription("set to true if script has to be mok'ed"); Option optCreateMok = OptionBuilder.create(conOptionCREATE_MOCK); OptionBuilder.withArgName("true|false"); OptionBuilder.hasArg(); OptionBuilder.withDescription("set to true if you want to create jobChains and jobs"); Option optCreateJobChains = OptionBuilder.create(conOptionCREATE_JobChains); options.addOption(optSysTab); options.addOption(optSourceFile); options.addOption(optTargetFile); options.addOption(optLogLevel); options.addOption(optChangeUser); options.addOption(optCreateMok); options.addOption(optCreateJobChains); CommandLineParser parser = new GnuParser(); CommandLine line = null; try { line = parser.parse(options, args); } catch (Exception e) { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("cronconverter", options, true); System.exit(0); } sourceFile = getWholeArgument(line.getOptionValues(conOptionCRONTAB)); if (sourceFile.equalsIgnoreCase(conSystemCrontabName)) sysTab = true; targetFile = getWholeArgument(line.getOptionValues(conOptionTARGET)); String ll = line.getOptionValue(conOptionVERBOSE, "" + SOSStandardLogger.INFO); logLevel = Integer.parseInt(ll); if (line.hasOption(optSysTab.getOpt())) { sysTab = line.getOptionValue(optSysTab.getOpt()).trim().equals("1"); } useOldRunTime = line.hasOption("oldRunTime"); changeUser = ""; if (line.hasOption(conOptionCHANGEUSER)) { changeUser = getWholeArgument(line.getOptionValues(conOptionCHANGEUSER)); } jobTimeout = line.getOptionValue(conOptionTIMEOUT); if (logLevel == 0) logLevel = SOSLogger.INFO; sosLogger = new SOSStandardLogger(logLevel); target = new File(targetFile); source = new File(sourceFile); CrontabFileConverter cc = new CrontabFileConverter(sosLogger); if (jobTimeout != null && jobTimeout.length() > 0) { cc.setTimeout(jobTimeout); } cc.setChangeUserCommand(changeUser); if (line.hasOption(conOptionCREATE_MOCK)) { // JITL-28 cc.setCreateAMock(line.getOptionValue(conOptionCREATE_MOCK).equalsIgnoreCase(conTRUE)); } if (line.hasOption(conOptionCREATE_JobChains)) { // JITL-28 cc.setCreateJobChainJobs(line.getOptionValue(conOptionCREATE_JobChains).equalsIgnoreCase(conTRUE)); } // cc.setCreateAMock(line.getOptionValue(conOptionCREATE_MOCK).equalsIgnoreCase(conTRUE)); // cc.setCreateJobChainJobs(line.getOptionValue(conOptionCREATE_JobChains).equalsIgnoreCase(conTRUE)); cc.setSystemCronTab(sysTab); cc.oldRunTime = useOldRunTime; cc.cronFile2SchedulerXMLFile(source, target); } catch (Exception e) { e.printStackTrace(); System.exit(1); } System.exit(0); }