diff --git a/ruff_cli/src/main.rs b/ruff_cli/src/main.rs index b5140fce4a..a3a2542720 100644 --- a/ruff_cli/src/main.rs +++ b/ruff_cli/src/main.rs @@ -41,11 +41,7 @@ fn inner_main() -> Result { // default for convenience and backwards-compatibility, so we just // preprocess the arguments accordingly before passing them to Clap. if let Some(arg) = args.get(1).and_then(|s| s.to_str()) { - if !Command::has_subcommand(arg) - && !arg - .strip_prefix("--") - .map(Command::has_subcommand) - .unwrap_or_default() + if !Command::has_subcommand(rewrite_legacy_subcommand(arg)) && arg != "-h" && arg != "--help" && arg != "-v" @@ -274,6 +270,15 @@ fn check(args: CheckArgs, log_level: LogLevel) -> Result { Ok(ExitCode::SUCCESS) } +fn rewrite_legacy_subcommand(cmd: &str) -> &str { + match cmd { + "--explain" => "explain", + "--clean" => "clean", + "--generate-shell-completion" => "generate-shell-completion", + cmd => cmd, + } +} + #[must_use] pub fn main() -> ExitCode { match inner_main() {