in sources/api/settings-committer/src/main.rs [159:199]
fn parse_args(args: env::Args) -> Args {
let mut transaction = None;
let mut log_level = None;
let mut socket_path = None;
let mut iter = args.skip(1);
while let Some(arg) = iter.next() {
match arg.as_ref() {
"--transaction" => {
transaction = Some(
iter.next()
.unwrap_or_else(|| usage_msg("Did not give argument to --transaction")),
)
}
"--log-level" => {
let log_level_str = iter
.next()
.unwrap_or_else(|| usage_msg("Did not give argument to --log-level"));
log_level = Some(LevelFilter::from_str(&log_level_str).unwrap_or_else(|_| {
usage_msg(format!("Invalid log level '{}'", log_level_str))
}));
}
"--socket-path" => {
socket_path = Some(
iter.next()
.unwrap_or_else(|| usage_msg("Did not give argument to --socket-path")),
)
}
_ => usage(),
}
}
Args {
transaction: transaction.unwrap_or_else(|| constants::LAUNCH_TRANSACTION.to_string()),
log_level: log_level.unwrap_or_else(|| LevelFilter::Info),
socket_path: socket_path.unwrap_or_else(|| constants::API_SOCKET.to_string()),
}
}