| use std::path::Path; | |
| use crate::utils::{run_command_with_output, run_tool_and_install_it_if_not_present}; | |
| fn show_usage() { | |
| println!( | |
| r#" | |
| `clippy` command help: | |
| --help : Show this help"# | |
| ); | |
| } | |
| pub fn run() -> Result<(), String> { | |
| // We skip binary name and the `info` command. | |
| let args = std::env::args().skip(2); | |
| #[allow(clippy::never_loop)] | |
| for arg in args { | |
| match arg.as_str() { | |
| "--help" => { | |
| show_usage(); | |
| return Ok(()); | |
| } | |
| _ => return Err(format!("Unknown option {arg}")), | |
| } | |
| } | |
| run_tool_and_install_it_if_not_present(&[ | |
| &"cargo", | |
| &"clippy", | |
| &"--all-targets", | |
| &"--", | |
| &"-D", | |
| &"warnings", | |
| ])?; | |
| run_command_with_output( | |
| &[ | |
| &"cargo", | |
| &"clippy", | |
| &"--all-targets", | |
| &"--no-default-features", | |
| &"--", | |
| &"-D", | |
| &"warnings", | |
| ], | |
| Some(Path::new(".")), | |
| )?; | |
| run_command_with_output( | |
| &[ | |
| &"cargo", | |
| &"clippy", | |
| &"--all-targets", | |
| &"--manifest-path", | |
| &"build_system/Cargo.toml", | |
| &"--", | |
| &"-D", | |
| &"warnings", | |
| ], | |
| Some(Path::new(".")), | |
| )?; | |
| Ok(()) | |
| } |