List of usage examples for org.apache.commons.cli OptionGroup addOption
public OptionGroup addOption(Option option)
Option
to this group. From source file:org.dspace.eperson.EPersonCLITool.java
/** * Tool for manipulating user accounts.//w w w. ja va2 s . c o m * * @param argv the command line arguments given * @throws ParseException * Base for Exceptions thrown during parsing of a command-line. * @throws SQLException * An exception that provides information on a database access error or other errors. * @throws AuthorizeException * Exception indicating the current user of the context does not have permission * to perform a particular action. */ public static void main(String argv[]) throws ParseException, SQLException, AuthorizeException { final OptionGroup VERBS = new OptionGroup(); VERBS.addOption(VERB_ADD); VERBS.addOption(VERB_DELETE); VERBS.addOption(VERB_LIST); VERBS.addOption(VERB_MODIFY); final Options globalOptions = new Options(); globalOptions.addOptionGroup(VERBS); globalOptions.addOption("h", "help", false, "explain options"); GnuParser parser = new GnuParser(); CommandLine command = parser.parse(globalOptions, argv, true); Context context = new Context(); // Disable authorization since this only runs from the local commandline. context.turnOffAuthorisationSystem(); int status = 0; if (command.hasOption(VERB_ADD.getOpt())) { status = cmdAdd(context, argv); } else if (command.hasOption(VERB_DELETE.getOpt())) { status = cmdDelete(context, argv); } else if (command.hasOption(VERB_MODIFY.getOpt())) { status = cmdModify(context, argv); } else if (command.hasOption(VERB_LIST.getOpt())) { status = cmdList(context, argv); } else if (command.hasOption('h')) { new HelpFormatter().printHelp("user [options]", globalOptions); } else { System.err.println("Unknown operation."); new HelpFormatter().printHelp("user [options]", globalOptions); context.abort(); status = 1; throw new IllegalArgumentException(); } if (context.isValid()) { try { context.complete(); } catch (SQLException ex) { System.err.println(ex.getMessage()); } } }
From source file:org.dspace.eperson.EPersonCLITool.java
/** Command to create an EPerson. */ private static int cmdAdd(Context context, String[] argv) throws AuthorizeException, SQLException { Options options = new Options(); options.addOption(VERB_ADD);//from ww w .j av a 2s .c om final OptionGroup identityOptions = new OptionGroup(); identityOptions.addOption(OPT_EMAIL); identityOptions.addOption(OPT_NETID); options.addOptionGroup(identityOptions); options.addOption(OPT_GIVENNAME); options.addOption(OPT_SURNAME); options.addOption(OPT_PHONE); options.addOption(OPT_LANGUAGE); options.addOption(OPT_REQUIRE_CERTIFICATE); Option option = new Option("p", "password", true, "password to match the EPerson name"); options.addOption(option); options.addOption("h", "help", false, "explain --add options"); // Rescan the command for more details. GnuParser parser = new GnuParser(); CommandLine command; try { command = parser.parse(options, argv); } catch (ParseException e) { System.err.println(e.getMessage()); return 1; } if (command.hasOption('h')) { new HelpFormatter().printHelp("user --add [options]", options); return 0; } // Check that we got sufficient credentials to define a user. if ((!command.hasOption(OPT_EMAIL.getOpt())) && (!command.hasOption(OPT_NETID.getOpt()))) { System.err.println("You must provide an email address or a netid to identify the new user."); return 1; } if (!command.hasOption('p')) { System.err.println("You must provide a password for the new user."); return 1; } // Create! EPerson eperson = null; try { eperson = ePersonService.create(context); } catch (SQLException ex) { context.abort(); System.err.println(ex.getMessage()); return 1; } catch (AuthorizeException ex) { /* XXX SNH */ } eperson.setCanLogIn(true); eperson.setSelfRegistered(false); eperson.setEmail(command.getOptionValue(OPT_EMAIL.getOpt())); eperson.setFirstName(context, command.getOptionValue(OPT_GIVENNAME.getOpt())); eperson.setLastName(context, command.getOptionValue(OPT_SURNAME.getOpt())); eperson.setLanguage(context, command.getOptionValue(OPT_LANGUAGE.getOpt(), Locale.getDefault().getLanguage())); ePersonService.setMetadata(context, eperson, "phone", command.getOptionValue(OPT_PHONE.getOpt())); eperson.setNetid(command.getOptionValue(OPT_NETID.getOpt())); ePersonService.setPassword(eperson, command.getOptionValue('p')); if (command.hasOption(OPT_REQUIRE_CERTIFICATE.getOpt())) { eperson.setRequireCertificate( Boolean.valueOf(command.getOptionValue(OPT_REQUIRE_CERTIFICATE.getOpt()))); } else { eperson.setRequireCertificate(false); } try { ePersonService.update(context, eperson); context.complete(); System.out.printf("Created EPerson %s\n", eperson.getID().toString()); } catch (SQLException ex) { context.abort(); System.err.println(ex.getMessage()); return 1; } catch (AuthorizeException ex) { /* XXX SNH */ } return 0; }
From source file:org.dspace.eperson.EPersonCLITool.java
/** Command to delete an EPerson. */ private static int cmdDelete(Context context, String[] argv) { Options options = new Options(); options.addOption(VERB_DELETE);//from w w w . j a va 2 s . co m final OptionGroup identityOptions = new OptionGroup(); identityOptions.addOption(OPT_EMAIL); identityOptions.addOption(OPT_NETID); options.addOptionGroup(identityOptions); options.addOption("h", "help", false, "explain --delete options"); GnuParser parser = new GnuParser(); CommandLine command; try { command = parser.parse(options, argv); } catch (ParseException e) { System.err.println(e.getMessage()); return 1; } if (command.hasOption('h')) { new HelpFormatter().printHelp("user --delete [options]", options); return 0; } // Delete! EPerson eperson = null; try { if (command.hasOption(OPT_NETID.getOpt())) { eperson = ePersonService.findByNetid(context, command.getOptionValue(OPT_NETID.getOpt())); } else if (command.hasOption(OPT_EMAIL.getOpt())) { eperson = ePersonService.findByEmail(context, command.getOptionValue(OPT_EMAIL.getOpt())); } else { System.err.println("You must specify the user's email address or netid."); return 1; } } catch (SQLException e) { System.err.append(e.getMessage()); return 1; } if (null == eperson) { System.err.println("No such EPerson"); return 1; } try { ePersonService.delete(context, eperson); context.complete(); System.out.printf("Deleted EPerson %s\n", eperson.getID().toString()); } catch (SQLException ex) { System.err.println(ex.getMessage()); return 1; } catch (AuthorizeException ex) { System.err.println(ex.getMessage()); return 1; } catch (IOException ex) { System.err.println(ex.getMessage()); return 1; } return 0; }
From source file:org.dspace.eperson.EPersonCLITool.java
/** Command to modify an EPerson. */ private static int cmdModify(Context context, String[] argv) throws AuthorizeException, SQLException { Options options = new Options(); options.addOption(VERB_MODIFY);// w ww. ja va 2 s .c om final OptionGroup identityOptions = new OptionGroup(); identityOptions.addOption(OPT_EMAIL); identityOptions.addOption(OPT_NETID); options.addOptionGroup(identityOptions); options.addOption(OPT_GIVENNAME); options.addOption(OPT_SURNAME); options.addOption(OPT_PHONE); options.addOption(OPT_LANGUAGE); options.addOption(OPT_REQUIRE_CERTIFICATE); options.addOption(OPT_CAN_LOGIN); options.addOption(OPT_NEW_EMAIL); options.addOption(OPT_NEW_NETID); options.addOption("h", "help", false, "explain --modify options"); GnuParser parser = new GnuParser(); CommandLine command; try { command = parser.parse(options, argv); } catch (ParseException e) { System.err.println(e.getMessage()); return 1; } if (command.hasOption('h')) { new HelpFormatter().printHelp("user --modify [options]", options); return 0; } // Modify! EPerson eperson = null; try { if (command.hasOption(OPT_NETID.getOpt())) { eperson = ePersonService.findByNetid(context, command.getOptionValue(OPT_NETID.getOpt())); } else if (command.hasOption(OPT_EMAIL.getOpt())) { eperson = ePersonService.findByEmail(context, command.getOptionValue(OPT_EMAIL.getOpt())); } else { System.err.println("No EPerson selected"); return 1; } } catch (SQLException e) { System.err.append(e.getMessage()); return 1; } boolean modified = false; if (null == eperson) { System.err.println("No such EPerson"); return 1; } else { if (command.hasOption(OPT_NEW_EMAIL.getOpt())) { eperson.setEmail(command.getOptionValue(OPT_NEW_EMAIL.getOpt())); modified = true; } if (command.hasOption(OPT_NEW_NETID.getOpt())) { eperson.setNetid(command.getOptionValue(OPT_NEW_NETID.getOpt())); modified = true; } if (command.hasOption(OPT_GIVENNAME.getOpt())) { eperson.setFirstName(context, command.getOptionValue(OPT_GIVENNAME.getOpt())); modified = true; } if (command.hasOption(OPT_SURNAME.getOpt())) { eperson.setLastName(context, command.getOptionValue(OPT_SURNAME.getOpt())); modified = true; } if (command.hasOption(OPT_PHONE.getOpt())) { ePersonService.setMetadata(context, eperson, "phone", command.getOptionValue(OPT_PHONE.getOpt())); modified = true; } if (command.hasOption(OPT_LANGUAGE.getOpt())) { eperson.setLanguage(context, command.getOptionValue(OPT_LANGUAGE.getOpt())); modified = true; } if (command.hasOption(OPT_REQUIRE_CERTIFICATE.getOpt())) { eperson.setRequireCertificate( Boolean.valueOf(command.getOptionValue(OPT_REQUIRE_CERTIFICATE.getOpt()))); modified = true; } if (command.hasOption(OPT_CAN_LOGIN.getOpt())) { eperson.setCanLogIn(Boolean.valueOf(command.getOptionValue(OPT_CAN_LOGIN.getOpt()))); modified = true; } if (modified) { try { ePersonService.update(context, eperson); context.complete(); System.out.printf("Modified EPerson %s\n", eperson.getID().toString()); } catch (SQLException ex) { context.abort(); System.err.println(ex.getMessage()); return 1; } catch (AuthorizeException ex) { /* XXX SNH */ } } else { System.out.println("No changes."); } } return 0; }
From source file:org.dspace.eperson.Groomer.java
/** * Command line tool for "grooming" the EPerson collection. *///w ww . ja v a 2s . c o m static public void main(String[] argv) throws SQLException { final String USAGE = "EPerson -verb [option...]"; OptionGroup verbs = new OptionGroup(); verbs.setRequired(true); verbs.addOption(new Option("h", "help", false, "explain this tool")); verbs.addOption(new Option("u", "unsalted", false, "list accounts with unsalted password hashes")); Options options = new Options(); options.addOptionGroup(verbs); PosixParser parser = new PosixParser(); CommandLine command = null; try { command = parser.parse(options, argv); } catch (ParseException ex) { System.err.println(ex.getMessage()); if (!(ex instanceof MissingOptionException)) new HelpFormatter().printHelp(USAGE, options); System.exit(1); } // Help the user if (command.hasOption('h') || command.hasOption('?')) { new HelpFormatter().printHelp(USAGE, options); } // Scan for unsalted hashes else if (command.hasOption('u')) { Context myContext = new Context(); final TableRowIterator tri = DatabaseManager.query(myContext, "SELECT email FROM EPerson WHERE password IS NOT NULL AND digest_algorithm IS NULL"); for (TableRow row = tri.next(); tri.hasNext(); row = tri.next()) System.out.println(row.getStringColumn("email")); myContext.abort(); // No changes to commit } // Should not happen: verb option defined but no code! else System.err.println("Unimplemented verb: " + verbs.getSelected()); }
From source file:org.eclipse.jubula.app.autagent.AutAgentApplication.java
/** * method to create an options object, filled with all options * * @return the options// w ww.java 2s .c o m */ private static Options createOptions() { Options options = new Options(); Option portOption = new Option(COMMANDLINE_OPTION_PORT, true, Messages.CommandlineOptionPort); portOption.setArgName(COMMANDLINE_PORT); options.addOption(portOption); options.addOption(COMMANDLINE_OPTION_LENIENT, false, Messages.CommandlineOptionLenient); options.addOption(COMMANDLINE_OPTION_HELP, false, Messages.CommandlineOptionHelp); OptionGroup verbosityOptions = new OptionGroup(); verbosityOptions.addOption(new Option(COMMANDLINE_OPTION_QUIET, false, Messages.CommandlineOptionQuiet)); verbosityOptions .addOption(new Option(COMMANDLINE_OPTION_VERBOSE, false, Messages.CommandlineOptionVerbose)); options.addOptionGroup(verbosityOptions); OptionGroup startStopOptions = new OptionGroup(); startStopOptions.addOption(new Option(COMMANDLINE_OPTION_START, false, Messages.CommandlineOptionStart)); OptionBuilder.hasOptionalArg(); Option stopOption = OptionBuilder.create(COMMANDLINE_OPTION_STOP); stopOption.setDescription(NLS.bind(Messages.OptionStopDescription, DEFAULT_HOSTNAME_LOCALHOST)); stopOption.setArgName(HOSTNAME); startStopOptions.addOption(stopOption); options.addOptionGroup(startStopOptions); return options; }
From source file:org.eclipse.jubula.app.autrun.AutRunApplication.java
/** * @return the command line options available when invoking the main method. *///from w w w. j a va 2 s . c om private static Options createCmdLineOptions() { Options options = new Options(); Option autAgentHostOption = new Option(OPT_AUT_AGENT_HOST, true, NLS.bind(Messages.infoAutAgentHost, DEFAULT_AUT_AGENT_HOST)); autAgentHostOption.setLongOpt(OPT_AUT_AGENT_HOST_LONG); autAgentHostOption.setArgName(HOSTNAME); options.addOption(autAgentHostOption); Option autAgentPortOption = new Option(OPT_AUT_AGENT_PORT, true, NLS.bind(Messages.infoAutAgentPort, DEFAULT_AUT_AGENT_PORT)); autAgentPortOption.setLongOpt(OPT_AUT_AGENT_PORT_LONG); autAgentPortOption.setArgName(PORT); options.addOption(autAgentPortOption); OptionGroup autToolkitOptionGroup = new OptionGroup(); autToolkitOptionGroup.addOption(new Option(TK_SWING, Messages.infoSwingToolkit)); autToolkitOptionGroup.addOption(new Option(TK_SWT, Messages.infoSwtToolkit)); autToolkitOptionGroup.addOption(new Option(TK_RCP, Messages.infoRcpToolkit)); autToolkitOptionGroup.setRequired(true); options.addOptionGroup(autToolkitOptionGroup); Option autIdOption = new Option(OPT_AUT_ID, true, Messages.infoAutId); autIdOption.setLongOpt(OPT_AUT_ID_LONG); autIdOption.setArgName(ID); autIdOption.setRequired(true); options.addOption(autIdOption); Option nameTechnicalComponentsOption = new Option(OPT_NAME_TECHNICAL_COMPONENTS, true, Messages.infoGenerateTechnicalComponentNames); nameTechnicalComponentsOption.setLongOpt(OPT_NAME_TECHNICAL_COMPONENTS_LONG); nameTechnicalComponentsOption.setArgName(TRUE_FALSE); options.addOption(nameTechnicalComponentsOption); Option keyboardLayoutOption = new Option(OPT_KEYBOARD_LAYOUT, true, Messages.infoKbLayout); keyboardLayoutOption.setLongOpt(OPT_KEYBOARD_LAYOUT_LONG); keyboardLayoutOption.setArgName(LOCALE); options.addOption(keyboardLayoutOption); Option workingDirOption = new Option(OPT_WORKING_DIR, true, Messages.infoAutWorkingDirectory); workingDirOption.setLongOpt(OPT_WORKING_DIR_LONG); workingDirOption.setArgName(DIRECTORY); options.addOption(workingDirOption); Option helpOption = new Option(OPT_HELP, false, Messages.infoHelp); helpOption.setLongOpt(OPT_HELP_LONG); options.addOption(helpOption); OptionBuilder.hasArgs(); Option autExecutableFileOption = OptionBuilder.create(OPT_EXECUTABLE); autExecutableFileOption.setDescription(Messages.infoExecutableFile); autExecutableFileOption.setLongOpt(OPT_EXECUTABLE_LONG); autExecutableFileOption.setRequired(true); autExecutableFileOption.setArgName(COMMAND); options.addOption(autExecutableFileOption); return options; }
From source file:org.eclipse.jubula.app.testexec.core.TestexecClient.java
/** * {@inheritDoc}/* w w w . j ava 2 s. co m*/ */ protected void extendOptions(Options options, boolean req) { options.addOption(createOption(ClientTestStrings.SERVER, true, ClientTestStrings.HOSTNAME, Messages.ClientServerOpt, false)); options.addOption(createOption(ClientTestStrings.PORT, true, ClientTestStrings.PORT_NUMBER, Messages.ClientPortOpt, false)); options.addOption(createOption(ClientTestStrings.PROJECT, true, ClientTestStrings.PROJECT_NAME, Messages.ClientProjectOpt, req)); options.addOption(createOption(ClientTestStrings.PROJECT_VERSION, true, ClientTestStrings.PROJECT_VERSION_EX, Messages.ClientProjectVersionOpt, req)); options.addOption(createOption(ClientTestStrings.LANGUAGE, true, ClientTestStrings.LANGUAGE, Messages.ClientLanguageOpt, req)); options.addOption(createOption(ClientTestStrings.RESULTDIR, true, ClientTestStrings.RESULTDIR, Messages.ClientResultdirOpt, false)); options.addOption(createOption(ClientStrings.RESULT_NAME, true, ClientStrings.RESULT_NAME, Messages.ClientResultnameOpt, false)); // AUT option group (AUT Configuration / AUT ID) OptionGroup autOptionGroup = new OptionGroup(); autOptionGroup.setRequired(false); autOptionGroup.addOption(createOption(ClientTestStrings.AUT_CONFIG, true, ClientTestStrings.AUT_CONFIG, Messages.ClientAutconfigOpt, req)); autOptionGroup.addOption(createOption(ClientTestStrings.AUT_ID, true, ClientTestStrings.AUT_ID, Messages.ClientAutIdOpt, req)); options.addOptionGroup(autOptionGroup); // Test execution type option group (Test Suite / Test Job) OptionGroup testExecutionGroup = new OptionGroup(); testExecutionGroup.setRequired(req); testExecutionGroup.addOption(createOption(ClientTestStrings.TESTJOB, true, ClientTestStrings.TESTJOB, Messages.ClientTestJobOpt, req)); testExecutionGroup.addOption(createOption(ClientTestStrings.TESTSUITE, true, ClientTestStrings.TESTSUITE, Messages.ClientTestSuiteOpt, req)); options.addOptionGroup(testExecutionGroup); options.addOption(createOption(ClientTestStrings.DATA_DIR, true, ClientTestStrings.DATA_DIR_EX, Messages.ClientDataFile, false)); Option noRunOption = createOption(ClientStrings.NORUN, true, ClientStrings.NORUN_MODE, Messages.ClientNoRunOpt, false); noRunOption.setOptionalArg(true); options.addOption(noRunOption); options.addOption(createOption(ClientTestStrings.AUTO_SCREENSHOT, false, StringConstants.EMPTY, Messages.ClientAutoScreenshot, false)); options.addOption(createOption(ClientTestStrings.NO_XML_SCREENSHOT, false, StringConstants.EMPTY, Messages.ClientNoXmlScreenshot, false)); options.addOption(createOption(ClientTestStrings.TIMEOUT, true, ClientTestStrings.TIMEOUT, Messages.ClientTimeout, false)); // server option for the CLC extension options.addOption(createOption(ClientTestStrings.STARTSERVER, true, ClientTestStrings.PORT_NUMBER, Messages.ClientStartServerOpt, false)); }
From source file:org.eclipse.jubula.app.testexec.TestexecClient.java
/** * {@inheritDoc}/*from w w w .ja va 2s . c om*/ */ protected void extendOptions(Options options, boolean req) { options.addOption(createOption(ClientTestStrings.SERVER, true, ClientTestStrings.HOSTNAME, Messages.ClientServerOpt, req)); options.addOption(createOption(ClientTestStrings.PORT, true, ClientTestStrings.PORT_NUMBER, Messages.ClientPortOpt, req)); options.addOption(createOption(ClientTestStrings.PROJECT, true, ClientTestStrings.PROJECT_NAME, Messages.ClientProjectOpt, req)); options.addOption(createOption(ClientTestStrings.PROJECT_VERSION, true, ClientTestStrings.PROJECT_VERSION_EX, Messages.ClientProjectVersionOpt, req)); options.addOption(createOption(ClientTestStrings.LANGUAGE, true, ClientTestStrings.LANGUAGE, Messages.ClientLanguageOpt, req)); options.addOption(createOption(ClientTestStrings.RESULTDIR, true, ClientTestStrings.RESULTDIR, Messages.ClientResultdirOpt, req)); // AUT option group (AUT Configuration / AUT ID) OptionGroup autOptionGroup = new OptionGroup(); autOptionGroup.setRequired(false); autOptionGroup.addOption(createOption(ClientTestStrings.AUT_CONFIG, true, ClientTestStrings.AUT_CONFIG, Messages.ClientAutconfigOpt, req)); autOptionGroup.addOption(createOption(ClientTestStrings.AUT_ID, true, ClientTestStrings.AUT_ID, Messages.ClientAutIdOpt, req)); options.addOptionGroup(autOptionGroup); // Test execution type option group (Test Suite / Test Job) OptionGroup testExecutionGroup = new OptionGroup(); testExecutionGroup.setRequired(req); testExecutionGroup.addOption(createOption(ClientTestStrings.TESTJOB, true, ClientTestStrings.TESTJOB, Messages.ClientTestJobOpt, req)); testExecutionGroup.addOption(createOption(ClientTestStrings.TESTSUITE, true, ClientTestStrings.TESTSUITE, Messages.ClientTestSuiteOpt, req)); options.addOptionGroup(testExecutionGroup); options.addOption(createOption(ClientTestStrings.DATA_DIR, true, ClientTestStrings.DATA_DIR_EX, Messages.ClientDataFile, req)); options.addOption( createOption(ClientStrings.NORUN, false, StringConstants.EMPTY, Messages.ClientNoRunOpt, false)); options.addOption(createOption(ClientTestStrings.AUTO_SCREENSHOT, false, StringConstants.EMPTY, Messages.ClientAutoScreenshot, false)); options.addOption(createOption(ClientTestStrings.NO_XML_SCREENSHOT, false, StringConstants.EMPTY, Messages.ClientNoXmlScreenshot, false)); options.addOption(createOption(ClientTestStrings.TEST_EXECUTION_RELEVANT, false, StringConstants.EMPTY, Messages.ClientRelevantFlag, false)); options.addOption(createOption(ClientTestStrings.TIMEOUT, true, ClientTestStrings.TIMEOUT, Messages.ClientTimeout, false)); // server option for the CLC extension options.addOption(createOption(ClientTestStrings.STARTSERVER, true, ClientTestStrings.PORT_NUMBER, Messages.ClientStartServerOpt, false)); }
From source file:org.eclipse.jubula.client.cmd.AbstractCmdlineClient.java
/** * method to create an options object, filled with all options * @param req/*from w w w. jav a2 s .c o m*/ * boolean flag must be true for an required option * this is only used for printing the correct usage * @return the options */ private Options createOptions(boolean req) { Options options = new Options(); options.addOption( createOption(ClientStrings.HELP, false, StringConstants.EMPTY, Messages.ClientHelpOpt, false)); options.addOption( createOption(ClientStrings.QUIET, false, StringConstants.EMPTY, Messages.ClientQuietOpt, false)); options.addOption(createOption(ClientStrings.CONFIG, true, ClientStrings.CONFIGFILE, Messages.ClientConfigOpt, false)); OptionGroup ogConnection = new OptionGroup(); ogConnection.addOption(createOption(ClientTestStrings.DBURL, true, ClientTestStrings.DATABASE, Messages.ClientDburlOpt, false)); ogConnection.addOption(createOption(ClientTestStrings.DB_SCHEME, true, ClientTestStrings.SCHEME, Messages.ClientDbschemeOpt, false)); options.addOptionGroup(ogConnection); options.addOption(createOption(ClientTestStrings.DB_USER, true, ClientTestStrings.USER, Messages.ClientDbuserOpt, false)); options.addOption(createOption(ClientTestStrings.DB_PW, true, ClientTestStrings.PASSWORD, Messages.ClientDbpwOpt, false)); extendOptions(options, req); return options; }