2025-05-02 20:35:45 +02:00
|
|
|
use osdb::branding::startup_msg;
|
|
|
|
|
use osdb::cli::read_input;
|
2025-05-03 18:39:36 +02:00
|
|
|
use osdb::error_display::OSDBError as _;
|
2025-05-04 14:22:19 +02:00
|
|
|
use osdb::parser::parse;
|
2025-05-01 22:19:24 +02:00
|
|
|
|
2025-05-01 19:24:18 +02:00
|
|
|
fn main() {
|
2025-05-03 19:00:41 +02:00
|
|
|
println!("{}", startup_msg());
|
2025-05-04 14:22:19 +02:00
|
|
|
'main: while let Some(input) = read_input() {
|
|
|
|
|
let file = String::from("<stdin>");
|
|
|
|
|
match parse(file.clone(), input.clone()) {
|
|
|
|
|
Ok(cmds) => {
|
|
|
|
|
for cmd in cmds {
|
|
|
|
|
let result = cmd.execute();
|
|
|
|
|
if result.should_exit {
|
|
|
|
|
break 'main;
|
|
|
|
|
}
|
|
|
|
|
println!("{}", result.display());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Err(errs) => {
|
|
|
|
|
for err in errs {
|
|
|
|
|
err.display(&file, &input)
|
2025-05-02 20:46:08 +02:00
|
|
|
}
|
2025-05-02 20:53:12 +02:00
|
|
|
}
|
2025-05-01 21:00:28 +02:00
|
|
|
}
|
|
|
|
|
}
|
2025-05-03 19:06:59 +02:00
|
|
|
println!("Good-bye");
|
2025-05-01 21:00:28 +02:00
|
|
|
}
|