pr_01m3xsjv8netd8ept0sbk2rms3/src/main.rs
use std::env;
use std::process;
use hello::greeting;
fn main() {
let mut args = env::args().skip(1);
let mut lang = "en".to_string();
let mut name = None;
// Parse arguments
while let Some(arg) = args.next() {
if arg == "--lang" {
lang = match args.next() {
Some(l) => l,
None => {
eprintln!("Error: --lang requires an argument");
process::exit(1);
}
};
} else {
name = Some(arg);
break;
}
}
// Get the name, or fall back to USER env var, or "world"
let name = name
.or_else(|| env::var("USER").ok())
.unwrap_or_else(|| "world".to_owned());
// Get the greeting, or print error and exit
match greeting(&name, &lang) {
Some(msg) => println!("{}", msg),
None => {
eprintln!("Error: unknown language '{}'", lang);
eprintln!("Supported languages: en, es, fr");
process::exit(1);
}
}
}