public TtyBridge readline() { InputStream inputrc = Keymap.class.getResourceAsStream("inputrc"); Keymap keymap = new Keymap(inputrc); Readline readline = new Readline(keymap); for (io.termd.core.readline.Function function : Helper.loadServices(Thread.currentThread().getContextClassLoader(), io.termd.core.readline.Function.class)) { log.trace("Server is adding function to readline: {}", function); readline.addFunction(function); } conn.setTerminalTypeHandler(term -> { // Not used yet but we should propagage this to the process builder // System.out.println("CLIENT $TERM=" + term); }); conn.stdoutHandler().accept(Helper.toCodePoints("Welcome sir\n")); read(conn, readline); return this; }
public TtyBridge readline() { InputStream inputrc = Keymap.class.getResourceAsStream("inputrc"); Keymap keymap = new Keymap(inputrc); Readline readline = new Readline(keymap); for (io.termd.core.readline.Function function : Helper.loadServices(Thread.currentThread().getContextClassLoader(), io.termd.core.readline.Function.class)) { log.trace("Server is adding function to readline: {}", function); readline.addFunction(function); } conn.setTerminalTypeHandler(term -> { // Not used yet but we should propagage this to the process builder // System.out.println("CLIENT $TERM=" + term); }); conn.stdoutHandler().accept(Helper.toCodePoints("Welcome sir\n")); read(conn, readline); return this; }
@Override public void accept(TtyConnection conn) { if (conn.terminalType() != null) { assertTerm.accept(conn.terminalType()); } else { conn.setTerminalTypeHandler(assertTerm); } } });
@Test public void testTerminalType() throws Exception { Consumer<String> assertTerm = term -> { if (term.equals("xterm") || term.equals("vt100")) { testComplete(); } else { fail("Unexpected term " + term); } }; server(conn -> { if (conn.terminalType() != null) { assertTerm.accept(conn.terminalType()); } else { conn.setTerminalTypeHandler(assertTerm); } }); assertConnect("xterm"); assertWrite("bye"); await(); }
@Test public void testTerminalType() throws Exception { Consumer<String> assertTerm = term -> { if (term.equals("xterm") || term.equals("vt100")) { testComplete(); } else { fail("Unexpected term " + term); } }; server(conn -> { if (conn.terminalType() != null) { assertTerm.accept(conn.terminalType()); } else { conn.setTerminalTypeHandler(assertTerm); } }); assertConnect("xterm"); assertWrite("bye"); await(); }
public static void handle(TtyConnection conn) { conn.setEventHandler((event, key) -> { switch (event) { case INTR: conn.write("You did a Ctrl-C\n"); break; case SUSP: conn.write("You did a Ctrl-Z\n"); break; case EOF: conn.write("You did a Ctrl-D: closing\n"); conn.close(); break; } }); conn.setSizeHandler(size -> { conn.write("You resized your terminal to " + size + "\n"); }); conn.setTerminalTypeHandler(term -> { conn.write("Your terminal is " + term + "\n"); }); conn.setStdinHandler(keys -> { for (int key : keys) { conn.write("You typed " + key + "\n"); } }); }
public static void handle(TtyConnection conn) { conn.setEventHandler((event, key) -> { switch (event) { case INTR: conn.write("You did a Ctrl-C\n"); break; case SUSP: conn.write("You did a Ctrl-Z\n"); break; case EOF: conn.write("You did a Ctrl-D: closing\n"); conn.close(); break; } }); conn.setSizeHandler(size -> { conn.write("You resized your terminal to " + size + "\n"); }); conn.setTerminalTypeHandler(term -> { conn.write("Your terminal is " + term + "\n"); }); conn.setStdinHandler(keys -> { for (int key : keys) { conn.write("You typed " + key + "\n"); } }); }