refactor(args): Apply comments

This commit is contained in:
Geobert Quach 2019-09-10 16:17:11 +01:00
parent 4e94c46713
commit aa894ace1f
4 changed files with 117 additions and 162 deletions

View file

@ -1,6 +1,4 @@
pub fn print_global_help() { pub const GLOBAL_HELP: &str = "ra-cli
println!(
"ra-cli
USAGE: USAGE:
ra_cli <SUBCOMMAND> ra_cli <SUBCOMMAND>
@ -13,13 +11,9 @@ SUBCOMMANDS:
analysis-stats analysis-stats
highlight highlight
parse parse
symbols" symbols";
)
}
pub fn print_analysis_bench_help() { pub const ANALYSIS_BENCH_HELP: &str = "ra_cli-analysis-bench
println!(
"ra_cli-analysis-bench
USAGE: USAGE:
ra_cli analysis-bench [FLAGS] [OPTIONS] [PATH] ra_cli analysis-bench [FLAGS] [OPTIONS] [PATH]
@ -33,13 +27,9 @@ OPTIONS:
--highlight <PATH> Hightlight this file --highlight <PATH> Hightlight this file
ARGS: ARGS:
<PATH> Project to analyse" <PATH> Project to analyse";
)
}
pub fn print_analysis_stats_help() { pub const ANALYSIS_STATS_HELP: &str = "ra-cli-analysis-stats
println!(
"ra-cli-analysis-stats
USAGE: USAGE:
ra_cli analysis-stats [FLAGS] [OPTIONS] [PATH] ra_cli analysis-stats [FLAGS] [OPTIONS] [PATH]
@ -53,44 +43,30 @@ OPTIONS:
-o <ONLY> -o <ONLY>
ARGS: ARGS:
<PATH>" <PATH>";
)
}
pub fn print_highlight_help() { pub const HIGHLIGHT_HELP: &str = "ra-cli-highlight
println!(
"ra-cli-highlight
USAGE: USAGE:
ra_cli highlight [FLAGS] ra_cli highlight [FLAGS]
FLAGS: FLAGS:
-h, --help Prints help information -h, --help Prints help information
-r, --rainbow" -r, --rainbow";
)
}
pub fn print_symbols_help() { pub const SYMBOLS_HELP: &str = "ra-cli-symbols
println!(
"ra-cli-symbols
USAGE: USAGE:
ra_cli highlight [FLAGS] ra_cli highlight [FLAGS]
FLAGS: FLAGS:
-h, --help Prints help inforamtion" -h, --help Prints help inforamtion";
)
}
pub fn print_parse_help() { pub const PARSE_HELP: &str = "ra-cli-parse
println!(
"ra-cli-parse
USAGE: USAGE:
ra_cli parse [FLAGS] ra_cli parse [FLAGS]
FLAGS: FLAGS:
-h, --help Prints help inforamtion -h, --help Prints help inforamtion
--no-dump" --no-dump";
)
}

View file

@ -15,20 +15,21 @@ type Result<T> = std::result::Result<T, Box<dyn Error + Send + Sync>>;
fn main() -> Result<()> { fn main() -> Result<()> {
Logger::with_env().start()?; Logger::with_env().start()?;
let subcommand = std::env::args_os().nth(1); let subcommand = match std::env::args_os().nth(1) {
if subcommand.is_none() { None => {
help::print_global_help(); eprintln!("{}", help::GLOBAL_HELP);
return Ok(()); return Ok(());
} }
let subcommand = subcommand.unwrap(); Some(s) => s,
};
let mut matches = Arguments::from_vec(std::env::args_os().skip(2).collect()); let mut matches = Arguments::from_vec(std::env::args_os().skip(2).collect());
match &*subcommand.to_string_lossy() { match &*subcommand.to_string_lossy() {
"parse" => { "parse" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_parse_help(); eprintln!("{}", help::PARSE_HELP);
return Ok(()); return Ok(());
} else { }
let no_dump = matches.contains("--no-dump"); let no_dump = matches.contains("--no-dump");
matches.finish().or_else(handle_extra_flags)?; matches.finish().or_else(handle_extra_flags)?;
@ -39,39 +40,36 @@ fn main() -> Result<()> {
} }
std::mem::forget(file); std::mem::forget(file);
} }
}
"symbols" => { "symbols" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_symbols_help(); eprintln!("{}", help::SYMBOLS_HELP);
return Ok(()); return Ok(());
} else { }
matches.finish().or_else(handle_extra_flags)?; matches.finish().or_else(handle_extra_flags)?;
let file = file()?; let file = file()?;
for s in file_structure(&file) { for s in file_structure(&file) {
println!("{:?}", s); println!("{:?}", s);
} }
} }
}
"highlight" => { "highlight" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_highlight_help(); eprintln!("{}", help::HIGHLIGHT_HELP);
return Ok(()); return Ok(());
} else { }
let rainbow_opt = matches.contains(["-r", "--rainbow"]); let rainbow_opt = matches.contains(["-r", "--rainbow"]);
matches.finish().or_else(handle_extra_flags)?; matches.finish().or_else(handle_extra_flags)?;
let (analysis, file_id) = Analysis::from_single_file(read_stdin()?); let (analysis, file_id) = Analysis::from_single_file(read_stdin()?);
let html = analysis.highlight_as_html(file_id, rainbow_opt).unwrap(); let html = analysis.highlight_as_html(file_id, rainbow_opt).unwrap();
println!("{}", html); println!("{}", html);
} }
}
"analysis-stats" => { "analysis-stats" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_analysis_stats_help(); eprintln!("{}", help::ANALYSIS_STATS_HELP);
return Ok(()); return Ok(());
} else { }
let verbose = matches.contains(["-v", "--verbose"]); let verbose = matches.contains(["-v", "--verbose"]);
let memory_usage = matches.contains("--memory-usage"); let memory_usage = matches.contains("--memory-usage");
let path = matches.value_from_str("--path")?.unwrap_or("".to_string()); let path: String = matches.value_from_str("--path")?.unwrap_or_default();
let only = matches.value_from_str(["-o", "--only"])?.map(|v: String| v.to_owned()); let only = matches.value_from_str(["-o", "--only"])?.map(|v: String| v.to_owned());
matches.finish().or_else(handle_extra_flags)?; matches.finish().or_else(handle_extra_flags)?;
analysis_stats::run( analysis_stats::run(
@ -81,14 +79,13 @@ fn main() -> Result<()> {
only.as_ref().map(String::as_ref), only.as_ref().map(String::as_ref),
)?; )?;
} }
}
"analysis-bench" => { "analysis-bench" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_analysis_bench_help(); eprintln!("{}", help::ANALYSIS_BENCH_HELP);
return Ok(()); return Ok(());
} else { }
let verbose = matches.contains(["-v", "--verbose"]); let verbose = matches.contains(["-v", "--verbose"]);
let path = matches.value_from_str("--path")?.unwrap_or("".to_string()); let path: String = matches.value_from_str("--path")?.unwrap_or_default();
let highlight_path = matches.value_from_str("--highlight")?; let highlight_path = matches.value_from_str("--highlight")?;
let complete_path = matches.value_from_str("--complete")?; let complete_path = matches.value_from_str("--complete")?;
if highlight_path.is_some() && complete_path.is_some() { if highlight_path.is_some() && complete_path.is_some() {
@ -112,8 +109,7 @@ fn main() -> Result<()> {
matches.finish().or_else(handle_extra_flags)?; matches.finish().or_else(handle_extra_flags)?;
analysis_bench::run(verbose, path.as_ref(), op)?; analysis_bench::run(verbose, path.as_ref(), op)?;
} }
} _ => eprintln!("{}", help::GLOBAL_HELP),
_ => help::print_global_help(),
} }
Ok(()) Ok(())
} }
@ -122,7 +118,7 @@ fn handle_extra_flags(e: pico_args::Error) -> Result<()> {
if let pico_args::Error::UnusedArgsLeft(flags) = e { if let pico_args::Error::UnusedArgsLeft(flags) = e {
let mut invalid_flags = String::new(); let mut invalid_flags = String::new();
for flag in flags { for flag in flags {
write!(&mut invalid_flags, "{}, ", flag).expect("Error on write"); write!(&mut invalid_flags, "{}, ", flag)?;
} }
let (invalid_flags, _) = invalid_flags.split_at(invalid_flags.len() - 2); let (invalid_flags, _) = invalid_flags.split_at(invalid_flags.len() - 2);
Err(format!("Invalid flags: {}", invalid_flags).into()) Err(format!("Invalid flags: {}", invalid_flags).into())

View file

@ -1,6 +1,4 @@
pub fn print_global_help() { pub const GLOBAL_HELP: &str = "tasks
println!(
"tasks
USAGE: USAGE:
ra_tools <SUBCOMMAND> ra_tools <SUBCOMMAND>
@ -15,13 +13,9 @@ SUBCOMMANDS:
gen-syntax gen-syntax
gen-tests gen-tests
install-ra install-ra
lint" lint";
)
}
pub fn print_install_ra_help() { pub const INSTALL_RA_HELP: &str = "ra_tools-install-ra
println!(
"ra_tools-install-ra
USAGE: USAGE:
ra_tools.exe install-ra [FLAGS] ra_tools.exe install-ra [FLAGS]
@ -30,12 +24,10 @@ FLAGS:
--client-code --client-code
-h, --help Prints help information -h, --help Prints help information
--jemalloc --jemalloc
--server" --server";
)
}
pub fn print_no_param_subcommand_help(subcommand: &str) { pub fn print_no_param_subcommand_help(subcommand: &str) {
println!( eprintln!(
"ra_tools-{} "ra_tools-{}
USAGE: USAGE:
@ -47,10 +39,7 @@ FLAGS:
); );
} }
pub fn print_install_ra_conflict() { pub const INSTALL_RA_CONFLICT: &str =
println!(
"error: The argument `--server` cannot be used with `--client-code` "error: The argument `--server` cannot be used with `--client-code`
For more information try --help" For more information try --help";
)
}

View file

@ -23,24 +23,25 @@ struct ServerOpt {
} }
fn main() -> Result<()> { fn main() -> Result<()> {
let subcommand = std::env::args_os().nth(1); let subcommand = match std::env::args_os().nth(1) {
if subcommand.is_none() { None => {
help::print_global_help(); eprintln!("{}", help::GLOBAL_HELP);
return Ok(()); return Ok(());
} }
let subcommand = subcommand.unwrap(); Some(s) => s,
};
let mut matches = Arguments::from_vec(std::env::args_os().skip(2).collect()); let mut matches = Arguments::from_vec(std::env::args_os().skip(2).collect());
let subcommand = &*subcommand.to_string_lossy(); let subcommand = &*subcommand.to_string_lossy();
match subcommand { match subcommand {
"install-ra" | "install-code" => { "install-ra" | "install-code" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_install_ra_help(); eprintln!("{}", help::INSTALL_RA_HELP);
return Ok(()); return Ok(());
} else { }
let server = matches.contains("--server"); let server = matches.contains("--server");
let client_code = matches.contains("--client-code"); let client_code = matches.contains("--client-code");
if server && client_code { if server && client_code {
help::print_install_ra_conflict(); eprintln!("{}", help::INSTALL_RA_CONFLICT);
return Ok(()); return Ok(());
} }
let jemalloc = matches.contains("--jemalloc"); let jemalloc = matches.contains("--jemalloc");
@ -51,56 +52,49 @@ fn main() -> Result<()> {
}; };
install(opts)? install(opts)?
} }
}
"gen-tests" => { "gen-tests" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_no_param_subcommand_help(&subcommand); help::print_no_param_subcommand_help(&subcommand);
return Ok(()); return Ok(());
} else {
gen_tests(Overwrite)?
} }
gen_tests(Overwrite)?
} }
"gen-syntax" => { "gen-syntax" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_no_param_subcommand_help(&subcommand); help::print_no_param_subcommand_help(&subcommand);
return Ok(()); return Ok(());
} else {
generate_boilerplate(Overwrite)?
} }
generate_boilerplate(Overwrite)?
} }
"format" => { "format" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_no_param_subcommand_help(&subcommand); help::print_no_param_subcommand_help(&subcommand);
return Ok(()); return Ok(());
} else {
run_rustfmt(Overwrite)?
} }
run_rustfmt(Overwrite)?
} }
"format-hook" => { "format-hook" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_no_param_subcommand_help(&subcommand); help::print_no_param_subcommand_help(&subcommand);
return Ok(()); return Ok(());
} else {
install_format_hook()?
} }
install_format_hook()?
} }
"lint" => { "lint" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_no_param_subcommand_help(&subcommand); help::print_no_param_subcommand_help(&subcommand);
return Ok(()); return Ok(());
} else {
run_clippy()?
} }
run_clippy()?
} }
"fuzz-tests" => { "fuzz-tests" => {
if matches.contains(["-h", "--help"]) { if matches.contains(["-h", "--help"]) {
help::print_no_param_subcommand_help(&subcommand); help::print_no_param_subcommand_help(&subcommand);
return Ok(()); return Ok(());
} else { }
run_fuzzer()? run_fuzzer()?
} }
} _ => eprintln!("{}", help::GLOBAL_HELP),
_ => help::print_global_help(),
} }
Ok(()) Ok(())
} }
@ -109,7 +103,7 @@ fn handle_extra_flags(e: pico_args::Error) -> Result<()> {
if let pico_args::Error::UnusedArgsLeft(flags) = e { if let pico_args::Error::UnusedArgsLeft(flags) = e {
let mut invalid_flags = String::new(); let mut invalid_flags = String::new();
for flag in flags { for flag in flags {
write!(&mut invalid_flags, "{}, ", flag).expect("Error on write"); write!(&mut invalid_flags, "{}, ", flag)?;
} }
let (invalid_flags, _) = invalid_flags.split_at(invalid_flags.len() - 2); let (invalid_flags, _) = invalid_flags.split_at(invalid_flags.len() - 2);
Err(format!("Invalid flags: {}", invalid_flags).into()) Err(format!("Invalid flags: {}", invalid_flags).into())