gbin 0.4.2

A suite of Linux utilities and programs.
use clap::{ColorChoice, Parser, Subcommand, builder::Styles};

fn styles() -> Styles {
    Styles::styled()
        .header(clap::builder::styling::AnsiColor::Green.on_default())
        .usage(clap::builder::styling::AnsiColor::Green.on_default())
        .literal(clap::builder::styling::AnsiColor::Blue.on_default())
        .placeholder(clap::builder::styling::AnsiColor::Magenta.on_default())
}

#[derive(Parser)]
#[command(
    version,
    about,
    long_about = None,
    color = ColorChoice::Always,
    styles = styles()
)]
pub struct Cli {
    #[command(subcommand)]
    pub command: Option<MainCommands>,
}

#[derive(Subcommand)]
pub enum MainCommands {
    /// [TUI] Network Manager
    #[command(name = "n")]
    Network {
        /// Bluetooth or WiFi
        #[command(subcommand)]
        module: Option<NetworkCommands>,
    },
    /// [TUI] Audio
    #[command(name = "a")]
    Audio {},
}

#[derive(Subcommand)]
pub enum NetworkCommands {
    /// [TUI] Bluetooth
    #[command(name = "b")]
    Bluetooth {},
    /// [TUI] WiFi
    #[command(name = "w")]
    Wifi {},
}