40 lines
690 B
Rust
40 lines
690 B
Rust
use metrify::run;
|
|
use std::env;
|
|
use std::io;
|
|
use std::io::Write;
|
|
use std::process;
|
|
|
|
fn main() {
|
|
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) {
|
|
Ok(str) => println!("{str}"),
|
|
Err(err) => {
|
|
eprintln!("{name}: Error: {err}");
|
|
process::exit(1);
|
|
}
|
|
}
|
|
}
|