Skip to content

Commit

Permalink
refactor: Pull out usage name fallback
Browse files Browse the repository at this point in the history
  • Loading branch information
epage committed Nov 9, 2023
1 parent 4b60cef commit 3ff5033
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
13 changes: 13 additions & 0 deletions clap_builder/src/builder/command.rs
Expand Up @@ -3335,6 +3335,19 @@ impl Command {
self.usage_name.as_deref()
}

#[inline]
#[cfg(feature = "usage")]
pub(crate) fn get_usage_name_fallback(&self) -> &str {
self.get_usage_name()
.unwrap_or_else(|| self.get_bin_name_fallback())
}

#[inline]
#[cfg(not(feature = "usage"))]
pub(crate) fn get_usage_name_fallback(&self) -> &str {
self.get_bin_name_fallback()
}

/// Get the name of the binary.
#[inline]
pub fn get_display_name(&self) -> Option<&str> {
Expand Down
10 changes: 2 additions & 8 deletions clap_builder/src/output/usage.rs
Expand Up @@ -135,7 +135,7 @@ impl<'cmd> Usage<'cmd> {
let literal = &self.styles.get_literal();
let placeholder = &self.styles.get_placeholder();

let bin_name = self.get_name();
let bin_name = self.cmd.get_usage_name_fallback();
if !bin_name.is_empty() {
// the trim won't properly remove a leading space due to the formatting
let _ = write!(
Expand Down Expand Up @@ -176,7 +176,7 @@ impl<'cmd> Usage<'cmd> {
styled.trim_end();
let _ = write!(styled, "{}", USAGE_SEP);
if self.cmd.is_args_conflicts_with_subcommands_set() {
let bin_name = self.get_name();
let bin_name = self.cmd.get_usage_name_fallback();
// Short-circuit full usage creation since no args will be relevant
let _ = write!(
styled,
Expand Down Expand Up @@ -211,12 +211,6 @@ impl<'cmd> Usage<'cmd> {
}
}

fn get_name(&self) -> &str {
self.cmd
.get_usage_name()
.unwrap_or_else(|| self.cmd.get_bin_name_fallback())
}

// Determines if we need the `[OPTIONS]` tag in the usage string
fn needs_options_tag(&self) -> bool {
debug!("Usage::needs_options_tag");
Expand Down

0 comments on commit 3ff5033

Please sign in to comment.