package org.jboss.windup.bootstrap.commands.windup; import org.jboss.windup.bootstrap.commands.Command; import org.jboss.windup.bootstrap.commands.CommandPhase; import org.jboss.windup.bootstrap.commands.CommandResult; import org.jboss.windup.bootstrap.help.Help; import org.jboss.windup.bootstrap.help.OptionDescription; public class DisplayHelpCommand implements Command { @Override public CommandResult execute() { StringBuilder sb = new StringBuilder(); sb.append("Usage: windup [OPTION]... PARAMETER ... \n"); sb.append("Extendable migration analysis, at your fingertips. \n"); sb.append("\n"); sb.append("\nWindup Options:\n"); for (OptionDescription option : Help.load().getOptions()) { sb.append("--").append(option.getName()).append("\n"); sb.append("\t").append(option.getDescription()).append("\n"); } sb.append("--listTags\n"); sb.append("\t List all available tags.\n"); sb.append("--listSourceTechnologies\n"); sb.append("\t List all available source technologies.\n"); sb.append("--listTargetTechnologies\n"); sb.append("\t List all available target technologies.\n"); sb.append("--discoverPackages\n"); sb.append("\t Lists all available packages in the input application (--input must also be specified).\n"); // temporary disabled until we find out how to properly update rules // sb.append("--updateRulesets\n"); // sb.append("\t Update the core rulesets to the latest version available.\n"); sb.append("\nForge Options:\n"); sb.append("-i, --install GROUP_ID:ARTIFACT_ID[:VERSION]\n"); sb.append("\t install the required addons and exit. ex: `windup -i core-addon-x` or `windup -i org.example.addon:example:1.0.0` \n"); sb.append("-r, --remove GROUP_ID:ARTIFACT_ID[:VERSION]\n"); sb.append("\t remove the required addons and exit. ex: `windup -r core-addon-x` or `windup -r org.example.addon:example:1.0.0` \n"); sb.append("-l, --list\n"); sb.append("\t list installed addons and exit \n"); sb.append("-a, --addonDir DIR\n"); sb.append("\t add the given directory for use as a custom addon repository \n"); sb.append("-m, --immutableAddonDir DIR\n"); sb.append("\t add the given directory for use as a custom immutable addon repository (read only) \n"); sb.append("-b, --batchMode\n"); sb.append("\t run Forge in batch mode and does not prompt for confirmation (exits immediately after running) \n"); sb.append("-d, --debug\n"); sb.append("\t run Forge in debug mode (wait on port 8000 for a debugger to attach) \n"); sb.append("-h, --help\n"); sb.append("\t display this help and exit \n"); sb.append("-v, --version\n"); sb.append("\t output version information and exit \n"); System.out.println(sb.toString()); return CommandResult.EXIT; } @Override public CommandPhase getPhase() { return CommandPhase.PRE_CONFIGURATION; } }