feat: colour the help, and check the command definition
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
use super::{Django, Link, Postgres};
|
||||
use clap::builder::styling::{AnsiColor, Effects, Styles};
|
||||
use clap::{Parser, Subcommand};
|
||||
use clap_complete::Shell;
|
||||
|
||||
/// A program for interacting with various dockerized applications
|
||||
#[derive(Parser, Debug)]
|
||||
#[command(author, version, about, long_about=None)]
|
||||
#[command(version, about, long_about = None)]
|
||||
#[command(styles = help_styles())]
|
||||
pub struct Ahab {
|
||||
#[command(subcommand)]
|
||||
pub command: Commands,
|
||||
@@ -43,3 +45,23 @@ pub enum Commands {
|
||||
shell: Shell,
|
||||
},
|
||||
}
|
||||
|
||||
// clap styles headers bold by default but adds no colour
|
||||
fn help_styles() -> Styles {
|
||||
Styles::styled()
|
||||
.header(AnsiColor::Green.on_default() | Effects::BOLD)
|
||||
.usage(AnsiColor::Green.on_default() | Effects::BOLD)
|
||||
.literal(AnsiColor::Cyan.on_default() | Effects::BOLD)
|
||||
.placeholder(AnsiColor::Cyan.on_default())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::Ahab;
|
||||
use clap::CommandFactory;
|
||||
|
||||
#[test]
|
||||
fn the_command_is_well_formed() {
|
||||
Ahab::command().debug_assert();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user