diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java b/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java index 5b16077..935a707 100644 --- a/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java +++ b/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java @@ -133,17 +133,6 @@ public class Main { } private void run(final CommandShellImpl commandProcessor, String[] args, final InputStream in, final PrintStream out, final PrintStream err) throws Exception { - TerminalFactory terminalFactory = new TerminalFactory(); - Terminal terminal = terminalFactory.getTerminal(); - Console console = createConsole(commandProcessor, in, out, err, terminal); - CommandSession session = console.getSession(); - session.put("USER", user); - session.put("APPLICATION", application); - session.put("LINES", Integer.toString(terminal.getTerminalHeight())); - session.put("COLUMNS", Integer.toString(terminal.getTerminalWidth())); - session.put(".jline.terminal", terminal); - session.put(NameScoping.MULTI_SCOPE_MODE_KEY, Boolean.toString(isMultiScopeMode())); - if (args.length > 0) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < args.length; i++) { @@ -152,6 +141,8 @@ public class Main { } sb.append(args[i]); } + + CommandSession session = commandProcessor.createSession(in,out, err); try { session.execute(sb); } catch (Throwable t) { @@ -164,10 +155,22 @@ public class Main { } } } else { + TerminalFactory terminalFactory = new TerminalFactory(); + Terminal terminal = terminalFactory.getTerminal(); + Console console = createConsole(commandProcessor, in, out, err, terminal); + CommandSession session = console.getSession(); + session.put("USER", user); + session.put("APPLICATION", application); + session.put("LINES", Integer.toString(terminal.getTerminalHeight())); + session.put("COLUMNS", Integer.toString(terminal.getTerminalWidth())); + session.put(".jline.terminal", terminal); + session.put(NameScoping.MULTI_SCOPE_MODE_KEY, Boolean.toString(isMultiScopeMode())); + console.run(); + + terminalFactory.destroy(); } - terminalFactory.destroy(); } /**