blob: 7636a5844c30c59c4d100ab34f1dc9f09e056a97 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
fn help() {
println!("mihi init: Initialize 'mihi' for a given language.\n");
println!("usage: mihi init [OPTIONS]\n");
println!("Options:");
println!(" -h, --help\t\tPrint this message.");
println!(" -l, --language\tThe language to be used.");
}
pub fn run(args: Vec<String>) {
let mut given_language: Option<String> = None;
let mut it = args.into_iter();
while let Some(arg) = it.next() {
match arg.as_str() {
"-h" | "--help" => {
help();
std::process::exit(0);
}
"-l" | "--language" => match it.next() {
Some(lang) => given_language = Some(lang),
None => {
println!(
"error: init: you have to provide a value for the '-l/--language' flag"
);
std::process::exit(1);
}
},
_ => {
println!("error: init: unknown flag: '{}'", arg.as_str());
std::process::exit(1);
}
}
}
// Assume latin for now. If we support more languages in the future, there
// should be a prompt or something.
let language = match given_language {
Some(lang) => lang,
None => String::from("latin"),
};
match init(language) {
Ok(_) => {}
Err(e) => {
println!("error: init: {e}");
std::process::exit(1);
}
}
}
fn init(language: String) -> Result<(), String> {
mihi::cfg::add_language(language)
}
|