diff --git a/clap_mangen/src/lib.rs b/clap_mangen/src/lib.rs index d529325f9f7..70b151a07f9 100644 --- a/clap_mangen/src/lib.rs +++ b/clap_mangen/src/lib.rs @@ -27,7 +27,10 @@ impl Man { /// Create a new manual page. pub fn new(mut cmd: clap::Command) -> Self { cmd.build(); - let title = cmd.get_name().to_owned(); + let title = cmd + .get_display_name() + .unwrap_or_else(|| cmd.get_name()) + .to_owned(); let section = "1".to_owned(); let date = "".to_owned(); let source = format!( diff --git a/clap_mangen/src/render.rs b/clap_mangen/src/render.rs index 11b8c5dec41..675dc193c5e 100644 --- a/clap_mangen/src/render.rs +++ b/clap_mangen/src/render.rs @@ -9,9 +9,10 @@ pub(crate) fn subcommand_heading(cmd: &clap::Command) -> &str { } pub(crate) fn about(roff: &mut Roff, cmd: &clap::Command) { + let name = cmd.get_display_name().unwrap_or_else(|| cmd.get_name()); let s = match cmd.get_about().or_else(|| cmd.get_long_about()) { - Some(about) => format!("{} - {}", cmd.get_name(), about), - None => cmd.get_name().to_string(), + Some(about) => format!("{} - {}", name, about), + None => name.to_owned(), }; roff.text([roman(s)]); } @@ -29,7 +30,8 @@ pub(crate) fn description(roff: &mut Roff, cmd: &clap::Command) { } pub(crate) fn synopsis(roff: &mut Roff, cmd: &clap::Command) { - let mut line = vec![bold(cmd.get_name()), roman(" ")]; + let name = cmd.get_bin_name().unwrap_or_else(|| cmd.get_name()); + let mut line = vec![bold(name), roman(" ")]; for opt in cmd.get_arguments().filter(|i| !i.is_hide_set()) { let (lhs, rhs) = option_markers(opt); diff --git a/clap_mangen/tests/snapshots/sub_subcommand_help.roff b/clap_mangen/tests/snapshots/sub_subcommand_help.roff index 674ee953576..54fedca4715 100644 --- a/clap_mangen/tests/snapshots/sub_subcommand_help.roff +++ b/clap_mangen/tests/snapshots/sub_subcommand_help.roff @@ -1,10 +1,10 @@ .ie /n(.g .ds Aq /(aq .el .ds Aq ' -.TH help 1 "help " +.TH my-app-help 1 "help " .SH NAME -help /- Print this message or the help of the given subcommand(s) +my/-app/-help /- Print this message or the help of the given subcommand(s) .SH SYNOPSIS -/fBhelp/fR [/fIsubcommands/fR] +/fBmy/-app help/fR [/fIsubcommands/fR] .SH DESCRIPTION Print this message or the help of the given subcommand(s) .SH SUBCOMMANDS