diff --git a/radicle-cli/src/commands/help.rs b/radicle-cli/src/commands/help.rs index 9fbcacc5..bc5d93d5 100644 --- a/radicle-cli/src/commands/help.rs +++ b/radicle-cli/src/commands/help.rs @@ -44,19 +44,12 @@ pub struct Options {} impl Args for Options { fn from_args(args: Vec) -> anyhow::Result<(Self, Vec)> { - use lexopt::prelude::*; - let mut parser = lexopt::Parser::from_args(args); if let Some(arg) = parser.next()? { - match arg { - Long("help") | Short('h') => { - return Err(Error::Help.into()); - } - _ => return Err(anyhow::anyhow!(arg.unexpected())), - } + return Err(anyhow::anyhow!(arg.unexpected())); } - Ok((Options {}, vec![])) + Err(Error::HelpManual { name: "rad" }.into()) } } diff --git a/radicle-cli/src/commands/patch.rs b/radicle-cli/src/commands/patch.rs index c0a34fec..c6d9b597 100644 --- a/radicle-cli/src/commands/patch.rs +++ b/radicle-cli/src/commands/patch.rs @@ -302,7 +302,7 @@ impl Args for Options { quiet = true; } Long("help") => { - return Err(Error::HelpManual.into()); + return Err(Error::HelpManual { name: "rad-patch" }.into()); } Short('h') => { return Err(Error::Help.into()); diff --git a/radicle-cli/src/terminal.rs b/radicle-cli/src/terminal.rs index 21ab8b7a..db8d9a90 100644 --- a/radicle-cli/src/terminal.rs +++ b/radicle-cli/src/terminal.rs @@ -84,8 +84,8 @@ where term::help(help.name, help.version, help.description, help.usage); process::exit(0); } - Some(Error::HelpManual) => { - let Ok(status) = term::manual(help.name) else { + Some(Error::HelpManual { name }) => { + let Ok(status) = term::manual(name) else { io::error(format!("rad {}: failed to load manual page", help.name)); process::exit(1); }; diff --git a/radicle-cli/src/terminal/args.rs b/radicle-cli/src/terminal/args.rs index 4b1b5391..f5207c13 100644 --- a/radicle-cli/src/terminal/args.rs +++ b/radicle-cli/src/terminal/args.rs @@ -19,7 +19,7 @@ pub enum Error { Help, /// If this error is returned from argument parsing, the manual page is displayed. #[error("help manual invoked")] - HelpManual, + HelpManual { name: &'static str }, /// If this error is returned from argument parsing, usage is displayed. #[error("usage invoked")] Usage, diff --git a/radicle-term/src/io.rs b/radicle-term/src/io.rs index fae53a6e..1998a953 100644 --- a/radicle-term/src/io.rs +++ b/radicle-term/src/io.rs @@ -139,9 +139,7 @@ pub fn help(name: &str, version: &str, description: &str, usage: &str) { } pub fn manual(name: &str) -> io::Result { - let mut child = process::Command::new("man") - .arg(format!("rad-{name}")) - .spawn()?; + let mut child = process::Command::new("man").arg(name).spawn()?; child.wait() }