37 lines
956 B
Rust
37 lines
956 B
Rust
use std::ffi::OsStr;
|
|
use std::path::Path;
|
|
|
|
use crate::utils::run_command_with_output;
|
|
|
|
fn show_usage() {
|
|
println!(
|
|
r#"
|
|
`fmt` command help:
|
|
|
|
--check : Pass `--check` argument to `cargo fmt` commands
|
|
--help : Show this help"#
|
|
);
|
|
}
|
|
|
|
pub fn run() -> Result<(), String> {
|
|
let mut check = false;
|
|
// We skip binary name and the `info` command.
|
|
let args = std::env::args().skip(2);
|
|
for arg in args {
|
|
match arg.as_str() {
|
|
"--help" => {
|
|
show_usage();
|
|
return Ok(());
|
|
}
|
|
"--check" => check = true,
|
|
_ => return Err(format!("Unknown option {arg}")),
|
|
}
|
|
}
|
|
|
|
let cmd: &[&dyn AsRef<OsStr>] =
|
|
if check { &[&"cargo", &"fmt", &"--check"] } else { &[&"cargo", &"fmt"] };
|
|
|
|
run_command_with_output(cmd, Some(Path::new(".")))?;
|
|
run_command_with_output(cmd, Some(Path::new("build_system")))
|
|
}
|