| #![cfg_attr(not(feature = "help"), allow(unused_variables))] |
| |
| // Internal |
| use crate::builder::Command; |
| use crate::builder::StyledStr; |
| use crate::output::Usage; |
| |
| /// Writes the parser help to the wrapped stream. |
| pub(crate) fn write_help(writer: &mut StyledStr, cmd: &Command, usage: &Usage<'_>, use_long: bool) { |
| debug!("write_help"); |
| |
| if let Some(h) = cmd.get_override_help() { |
| writer.extend(h.iter()); |
| } else { |
| #[cfg(feature = "help")] |
| { |
| use super::AutoHelp; |
| use super::HelpTemplate; |
| if let Some(tmpl) = cmd.get_help_template() { |
| for (style, content) in tmpl.iter() { |
| if style.is_none() { |
| HelpTemplate::new(writer, cmd, usage, use_long) |
| .write_templated_help(content); |
| } else { |
| writer.stylize(style, content); |
| } |
| } |
| } else { |
| AutoHelp::new(writer, cmd, usage, use_long).write_help(); |
| } |
| } |
| |
| #[cfg(not(feature = "help"))] |
| { |
| debug!("write_help: no help, `Command::override_help` and `help` is missing"); |
| } |
| } |
| |
| // Remove any extra lines caused by book keeping |
| writer.trim(); |
| // Ensure there is still a trailing newline |
| writer.none("\n"); |
| } |