package cli; import org.apache.commons.cli.*; public class CommandLineInterface { private Options options; public CommandLineInterface(){ this.options = new Options(); addOptions(); HelpFormatter formatter = new HelpFormatter(); formatter.printHelp( "to do", options); //todo } public void addOptions(){ OptionGroup uniqueCommands = new OptionGroup(); Option initialiseITS = Option.builder() .longOpt("init") .desc("initialise issue system") .build(); uniqueCommands.addOption(initialiseITS); Option createIssue = Option.builder() .longOpt("new") .hasArgs() .argName("TITLE> <DESCRIPTION") .numberOfArgs(2) .desc("create new issue") .build(); uniqueCommands.addOption(createIssue); // Option createIssue = Option.builder() // .longOpt("new") // .hasArgs() // .argName("<TITLE> <DESCRIPTION> [LABEL]") // .numberOfArgs(Option.UNLIMITED_VALUES) // .desc("create new issue") // .build(); // uniqueCommands.addOption(createIssue); Option updateIssue = Option.builder() .longOpt("update") .desc("update issue with given id") .build(); uniqueCommands.addOption(updateIssue); Option deleteIssue = Option.builder() .longOpt("remove") .hasArg() .argName("ID") .desc("delete issue with given id") .build(); uniqueCommands.addOption(deleteIssue); Option comment = Option.builder() .longOpt("comment") .desc("comment on issue with given id") .build(); uniqueCommands.addOption(comment); Option viewIssues = Option.builder() .longOpt("view") .desc("view on issue with given id") .build(); uniqueCommands.addOption(viewIssues); options.addOptionGroup(uniqueCommands); } public CommandLine getInput(String[] userInput) throws ParseException { CommandLineParser parser = new DefaultParser(); return parser.parse(options, userInput); } }