Software /
code /
prosody
Comparison
util/prosodyctl/shell.lua @ 11890:b9aab1962a2b
util.prosodyctl.shell: Allow setting custom prompt (admin_shell_prompt)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 11 Nov 2021 13:27:28 +0000 |
parent | 11522:5bd38d9197e1 |
child | 11902:98fd531594bd |
comparison
equal
deleted
inserted
replaced
11889:df76802dc09c | 11890:b9aab1962a2b |
---|---|
15 histfile = path.join(prosody.paths.data, ".shell_history"); | 15 histfile = path.join(prosody.paths.data, ".shell_history"); |
16 ignoredups = true; | 16 ignoredups = true; |
17 }); | 17 }); |
18 end | 18 end |
19 | 19 |
20 local function read_line() | 20 local function read_line(prompt_string) |
21 if have_readline then | 21 if have_readline then |
22 return readline.readline("prosody> "); | 22 return readline.readline(prompt_string); |
23 else | 23 else |
24 io.write("prosody> "); | 24 io.write(prompt_string); |
25 return io.read("*line"); | 25 return io.read("*line"); |
26 end | 26 end |
27 end | 27 end |
28 | 28 |
29 local function send_line(client, line) | 29 local function send_line(client, line) |
30 client.send(st.stanza("repl-input"):text(line)); | 30 client.send(st.stanza("repl-input"):text(line)); |
31 end | 31 end |
32 | 32 |
33 local function repl(client) | 33 local function repl(client) |
34 local line = read_line(); | 34 local line = read_line(client.prompt_string or "prosody> "); |
35 if not line or line == "quit" or line == "exit" or line == "bye" then | 35 if not line or line == "quit" or line == "exit" or line == "bye" then |
36 if not line then | 36 if not line then |
37 print(""); | 37 print(""); |
38 end | 38 end |
39 if have_readline then | 39 if have_readline then |
121 if stanza.name == "repl-result" then | 121 if stanza.name == "repl-result" then |
122 repl(client); | 122 repl(client); |
123 end | 123 end |
124 end); | 124 end); |
125 | 125 |
126 client.prompt_string = config.get("*", "admin_shell_prompt"); | |
127 | |
126 local socket_path = path.resolve_relative_path(prosody.paths.data, opts.socket or config.get("*", "admin_socket") or "prosody.sock"); | 128 local socket_path = path.resolve_relative_path(prosody.paths.data, opts.socket or config.get("*", "admin_socket") or "prosody.sock"); |
127 local conn = adminstream.connection(socket_path, client.listeners); | 129 local conn = adminstream.connection(socket_path, client.listeners); |
128 local ok, err = conn:connect(); | 130 local ok, err = conn:connect(); |
129 if not ok then | 131 if not ok then |
130 if err == "no unix socket support" then | 132 if err == "no unix socket support" then |