// Main.java
package net.sf.gogui.tools.terminal;
import java.io.PrintStream;
import java.util.ArrayList;
import net.sf.gogui.go.GoPoint;
import net.sf.gogui.util.Options;
import net.sf.gogui.util.StringUtil;
import net.sf.gogui.version.Version;
/** Terminal main function. */
public final class Main
{
/** Terminal main function. */
public static void main(String[] args)
{
try
{
String options[] = {
"color",
"config:",
"help",
"size:",
"verbose",
"version"
};
Options opt = Options.parse(args, options);
if (opt.contains("help"))
{
printUsage(System.out);
return;
}
if (opt.contains("version"))
{
System.out.println("gogui-terminal " + Version.get());
return;
}
int size = opt.getInteger("size", GoPoint.DEFAULT_SIZE, 1,
GoPoint.MAX_SIZE);
boolean verbose = opt.contains("verbose");
boolean color = opt.contains("color");
ArrayList<String> arguments = opt.getArguments();
if (arguments.size() != 1)
{
printUsage(System.err);
System.exit(1);
}
String program = arguments.get(0);
Terminal terminal = new Terminal(program, size, verbose);
terminal.setColor(color);
terminal.mainLoop();
terminal.close();
}
catch (Throwable t)
{
StringUtil.printException(t);
System.exit(1);
}
}
/** Make constructor unavailable; class is for namespace only. */
private Main()
{
}
private static void printUsage(PrintStream out)
{
String helpText =
"Usage: gogui-terminal program\n" +
"\n" +
"-color colorize go board\n" +
"-config config file\n" +
"-help print help and exit\n" +
"-size n board size (default 19)\n" +
"-verbose print debug information\n" +
"-version print version and exit\n";
out.print(helpText);
}
}