modcli/output/input/
console.rs1use crate::config::CliConfig;
2use crate::output::input::prompt_text;
3use crate::output::print::print_multiline;
4
5pub fn run_interactive_console(config: &CliConfig) {
6 if let Some(welcome) = &config.welcome {
7 print_multiline(
8 &welcome.iter().map(String::as_str).collect::<Vec<&str>>(),
9 Some(config.line_delay.unwrap_or(0)),
10 );
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 println!("You typed: {}", input);
23 }
24
25 if let Some(goodbye) = &config.goodbye {
26 print_multiline(
27 &goodbye.iter().map(String::as_str).collect::<Vec<&str>>(),
28 Some(config.line_delay.unwrap_or(0)),
29 );
30 }
31}