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
use crate::logger;
use crate::markup::MarkupType;
use crate::Config;
use clap::{App, Arg};
pub fn parse_args() -> Config {
let matches = App::new(crate_name!())
.arg(
Arg::with_name("folder")
.help("Check all links in given folder and subfolders")
.required(false)
.index(1),
)
.arg(
Arg::with_name("debug")
.long("debug")
.short("d")
.help("Print debug information to console")
.required(false),
)
.version(crate_version!())
.author(crate_authors!())
.about(crate_description!())
.get_matches();
let debug = matches.is_present("debug");
let log_level = if debug {
logger::LogLevel::Debug
} else {
logger::LogLevel::Warn
};
let folder = matches.value_of("folder").unwrap_or("./");
let markup_types = vec![MarkupType::Markdown];
debug!("The log level is: {}", log_level);
debug!("The root folder is: {:?}", folder);
debug!("The file extension are: {:?}", markup_types);
Config {
log_level,
folder: folder.parse().unwrap(),
markup_types,
}
}