import java.io.IOException;
import java.util.Random;
import java.util.Scanner;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
public class CommandLine {
private OptionParser parser;
private Random random;
private void init() throws IOException {
random = new Random();
parser = new OptionParser() {
{
accepts("n", "next random number");
accepts("q", "quit");
accepts("h", "show help").isForHelp();
}
};
parser.printHelpOn(System.out);
}
private boolean handle(String[] args) throws IOException {
OptionSet opts = parser.parse(args);
if(opts.has("n")) {
System.out.println(random.nextInt());
}else if(opts.has("h")) {
parser.printHelpOn(System.out);
} else if(opts.has("q")) {
System.out.println("Bye.");
return true;
}
return false;
}
public static void main(String[] args) throws IOException {
CommandLine commander = new CommandLine();
commander.init();
Scanner sc = null;
try {
sc = new Scanner(System.in);
for (prompt(); sc.hasNextLine(); prompt()) {
String line = sc.nextLine().replaceAll("\n", "");
// return pressed
if (line.length() == 0) {
System.out.println("No option selected. Use -h to get help.");
continue;
}
// split line into arguments
boolean exit = commander.handle(line.split(" "));
if(exit)
break;
}
} finally {
sc.close();
}
}
private static void prompt() {
System.out.print(">> ");
}
}