package com.doc.external; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; /** * Apache CLI management * * @author Deisss * @version 0.1 */ public class Cli { /** * Print doc help */ public static void printHelp() { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("jersey-doc-generator", constructOptions()); } /** * Build main menu system * * @return The builded menu */ public static Options constructOptions() { final Options options = new Options(); /* * * ----------------------- * CORE OPTIONS * ----------------------- * */ // Path selector Option p = OptionBuilder.create("p"); p.setLongOpt("path"); p.setDescription("The default folder where to find project"); p.setArgs(1); // Class selector Option c = OptionBuilder.create("c"); c.setLongOpt("class"); c.setDescription("The class (with package name) to parse for extracting data from"); c.setArgs(1); // Type selector Option t = OptionBuilder.create("t"); t.setLongOpt("type"); t.setDescription("Project type: war, jar, or class (default is class)"); t.setArgs(1); // Path save selector Option o = OptionBuilder.create("o"); o.setLongOpt("out"); o.setDescription("The file to save content, nothing = print on console"); o.setArgs(1); options.addOption(p); options.addOption(c); options.addOption(t); /* * * ----------------------- * MISCELANEOUS OPTIONS * ----------------------- * */ // External loader Option d = OptionBuilder.create("d"); d.setLongOpt("dependencies"); d.setDescription("Add dependency (jar) resolver, to remove 'no class def found' error"); d.setArgs(20); Option m = OptionBuilder.create("maven"); m.setLongOpt("maven"); m.setDescription("Include all maven libraries as dependencies"); // Print help Option h = OptionBuilder.create("h"); h.setLongOpt("help"); h.setDescription("Print help"); // Class selector Option tmp = OptionBuilder.create("tmp"); tmp.setDescription("The tmp folder to use (default is /tmp or C:\\ depending on OS"); tmp.setArgs(1); options.addOption(d); options.addOption(m); options.addOption(h); options.addOption(o); options.addOption(tmp); return options; } }