/** * Get some data from the session * @param key the key of the data * @return the data */ public <T> T get(String key) { T ret = (T) delegate.get(key); return ret; }
/** * Get some data from the session * @param key the key of the data * @return the data */ public <T> T get(String key) { T ret = (T) delegate.get(key); return ret; }
public static <T>java.lang.Object get(io.vertx.ext.shell.session.Session j_receiver, java.lang.String key) { return io.vertx.core.impl.ConversionHelper.fromObject(j_receiver.get(key)); } public static <T>java.lang.Object remove(io.vertx.ext.shell.session.Session j_receiver, java.lang.String key) {
@Override public void process(CommandProcess process) { InternalCommandManager mgr = process.session().get("vert.x-command-manager"); List<Command> commands = mgr.getResolvers().stream().flatMap(r -> r.commands().stream()).distinct().collect(Collectors.toList()); process.write("available commands:\n"); for (Command command : commands) { process.write(command.name()).write("\n"); } process.end(); } }
@Override public void process(CommandProcess process) { new FsHelper().ls(process.vertx(), process.session().get("cwd"), file, ar -> {
Handler<Completion> completionHandler() { return completion -> { String last; int s = completion.lineTokens().size(); if (s > 0 && completion.lineTokens().get(s - 1).isText()) { last = completion.lineTokens().get(s - 1).value(); } else { last = ""; } complete(completion.vertx(), completion.session().get("path"), last, result -> { if (result.succeeded()) { Map<String, Boolean> matches = result.result(); switch (matches.size()) { case 0: completion.complete(Collections.emptyList()); break; case 1: Map.Entry<String, Boolean> match = matches.entrySet().iterator().next(); completion.complete(match.getKey(), match.getValue()); break; default: completion.complete(new ArrayList<>(matches.keySet())); break; } } else { completion.complete(Collections.emptyList()); } }); }; }
@Override public void process(CommandProcess process) { String cwd = process.session().get("cwd"); if (cwd == null) { cwd = new FsHelper().rootDir(); } process.write(cwd).write("\n").end(); } }
@Override public void process(CommandProcess process) { if (process.args().size() > 0) { String cwd = process.session().get("cwd"); new FsHelper().cd(process.vertx().fileSystem(), cwd, dir, ar -> { if (ar.succeeded()) { process.session().put("cwd", ar.result()); process.end(); } else { process.write("cd: No such file or directory\n"); process.end(); } }); } else { process.session().remove("cwd"); process.end(); } }
@Test public void testSessionPut(TestContext context) throws Exception { Async async = context.async(); commands.add(CommandBuilder.command("foo").processHandler(process -> { Session session = process.session(); context.assertNotNull(session); context.assertNull(session.get("the_key")); session.put("the_key", "the_value"); process.end(); })); Shell shell = server.createShell(); Job job = shell.createJob("foo"); Pty pty = Pty.create(); Session session = new SessionImpl(); job.setSession(session).setTty(pty.slave()).statusUpdateHandler(CommandProcessTest.terminateHandler(status -> { context.assertEquals(0, job.process().exitCode()); context.assertEquals("the_value", session.get("the_key")); async.complete(); })).run(); }
@Test public void testSessionGet(TestContext context) throws Exception { Async async = context.async(); commands.add(CommandBuilder.command("foo").processHandler(process -> { Session session = process.session(); context.assertNotNull(session); context.assertEquals("the_value", session.get("the_key")); process.end(); })); Shell shell = server.createShell(); Job job = shell.createJob("foo"); Session session = new SessionImpl(); session.put("the_key", "the_value"); Pty pty = Pty.create(); job.setSession(session).setTty(pty.slave()).statusUpdateHandler(CommandProcessTest.terminateHandler(status -> { context.assertEquals(0, job.process().exitCode()); async.complete(); })).run(); }
@Test public void testSessionRemove(TestContext context) throws Exception { Async async = context.async(); commands.add(CommandBuilder.command("foo").processHandler(process -> { Session session = process.session(); context.assertNotNull(session); context.assertEquals("the_value", session.remove("the_key")); process.end(); })); Shell shell = server.createShell(); Job job = shell.createJob("foo"); Pty pty = Pty.create(); Session session = new SessionImpl(); session.put("the_key", "the_value"); job.setSession(session).setTty(pty.slave()).statusUpdateHandler(CommandProcessTest.terminateHandler(status -> { context.assertEquals(0, job.process().exitCode()); context.assertNull(session.get("the_key")); async.complete(); })).run(); }
ShellImpl shell = createShell(conn); SessionImpl session = (SessionImpl)shell.session(); Function<Session,String> dynamicPrompt = x -> x.get("CURRENT_PROMPT"); String prompt1 = "PROMPT1"; String prompt2 = "PROMPT2";