modcli/output/input/
console.rs1use crate::config::CliConfig;
2use crate::output::input::prompt_text;
3use crate::output::print;
4
5pub fn run_interactive_console(config: &CliConfig) {
6 if let Some(welcome) = &config.welcome {
8 let welcome_text = welcome.join("\n");
9 let welcome_lines: Vec<&str> = welcome_text.lines().collect();
10 print::scroll(&welcome_lines, config.line_delay.unwrap_or(0));
11 }
12
13 let prompt = config.prompt_prefix.as_deref().unwrap_or("Mod > ");
15
16 loop {
17 let input = prompt_text(prompt);
18 if input.eq_ignore_ascii_case("exit") || input.eq_ignore_ascii_case("quit") {
19 break;
20 }
21
22 let response = format!("You typed: {}", input);
23 let response_lines: Vec<&str> = response.lines().collect();
24 print::scroll(&response_lines, 0);
25 }
26
27 if let Some(goodbye) = &config.goodbye {
29 let goodbye_text = goodbye.join("\n");
30 let goodbye_lines: Vec<&str> = goodbye_text.lines().collect();
31 print::scroll(&goodbye_lines, config.line_delay.unwrap_or(0));
32 }
33}