2023-05-14 00:40:21 +00:00
|
|
|
use metrify::run;
|
2023-05-14 01:38:20 +00:00
|
|
|
use std::env;
|
|
|
|
use std::io;
|
|
|
|
use std::io::Write;
|
|
|
|
use std::process;
|
2023-05-13 14:50:18 +00:00
|
|
|
|
|
|
|
fn main() {
|
2023-05-14 01:38:20 +00:00
|
|
|
let args: Vec<String> = env::args().collect();
|
|
|
|
let name = args[0].clone();
|
|
|
|
let args = args[1..].join(" ");
|
|
|
|
|
|
|
|
let mut input = args;
|
|
|
|
|
|
|
|
if input.len() == 0 {
|
|
|
|
print!("> ");
|
|
|
|
match io::stdout().flush() {
|
|
|
|
Ok(_) => {}
|
|
|
|
Err(err) => {
|
|
|
|
eprintln!("{name}: Error: {err}");
|
|
|
|
process::exit(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
match io::stdin().read_line(&mut input) {
|
|
|
|
Ok(_) => {}
|
|
|
|
Err(err) => {
|
|
|
|
eprintln!("{name}: Error: {err}");
|
|
|
|
process::exit(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
match run(&input) {
|
2023-05-14 00:40:21 +00:00
|
|
|
Ok(str) => println!("{str}"),
|
2023-05-14 01:38:20 +00:00
|
|
|
Err(err) => {
|
|
|
|
eprintln!("{name}: Error: {err}");
|
|
|
|
process::exit(1);
|
|
|
|
}
|
2023-05-14 00:04:47 +00:00
|
|
|
}
|
2023-05-13 14:50:18 +00:00
|
|
|
}
|