1 package net.argius.stew.ui.console;
3 import static net.argius.stew.text.TextUtilities.join;
7 import net.argius.stew.*;
8 import net.argius.stew.ui.*;
11 * The Launcher implementation of console mode.
13 public final class ConsoleLauncher implements Launcher {
15 private static Logger log = Logger.getLogger(ConsoleLauncher.class);
16 private static final boolean END = false;
19 public void launch(Environment env) {
21 OutputProcessor out = env.getOutputProcessor();
22 Prompt prompt = new Prompt(env);
23 Scanner scanner = new Scanner(System.in);
26 if (!scanner.hasNextLine()) {
29 final String line = scanner.nextLine();
30 log.debug("input : %s", line);
31 if (String.valueOf(line).trim().equals("--edit")) {
32 ConnectorMapEditor.invoke();
33 env.updateConnectorMap();
34 } else if (Command.invoke(env, line) == END) {
42 public static void main(String... args) {
43 List<String> a = new ArrayList<String>(Arrays.asList(args));
44 if (a.contains("-v") || a.contains("--version")) {
45 System.out.println("Stew " + Bootstrap.getVersion());
48 Environment env = new Environment();
50 env.setOutputProcessor(new ConsoleOutputProcessor());
51 final String about = ResourceManager.Default.get(".about", Bootstrap.getVersion());
52 env.getOutputProcessor().output(about);
53 if (!a.isEmpty() && !a.get(0).startsWith("-")) {
54 Command.invoke(env, "connect " + a.remove(0));
57 Command.invoke(env, join(" ", a));
58 Command.invoke(env, "disconnect");
60 Launcher o = new ConsoleLauncher();