2023-10-31 15:58:35 +00:00
|
|
|
//! The CLI definitions.
|
|
|
|
|
2023-11-01 16:56:32 +00:00
|
|
|
pub use {
|
|
|
|
crate::cli::run::run,
|
|
|
|
clap::{Parser, Subcommand},
|
|
|
|
};
|
2023-10-31 13:51:57 +00:00
|
|
|
|
|
|
|
mod run;
|
|
|
|
|
2023-10-31 15:58:35 +00:00
|
|
|
/// The main CLI command.
|
2023-10-31 13:51:57 +00:00
|
|
|
#[derive(Debug, Parser)]
|
2023-11-01 16:56:32 +00:00
|
|
|
#[command(about, author, version, propagate_version = true)]
|
|
|
|
pub struct Cli {
|
|
|
|
/// The main CLI subcommand.
|
|
|
|
#[command(subcommand)]
|
|
|
|
pub command: MainSubcommand,
|
|
|
|
}
|
|
|
|
|
|
|
|
/// The main subcommands.
|
|
|
|
#[derive(Debug, Subcommand)]
|
|
|
|
pub enum MainSubcommand {
|
2023-11-04 14:11:37 +00:00
|
|
|
/// The arguments subcommand.
|
|
|
|
Arguments {
|
|
|
|
/// The arguments subcommands.
|
|
|
|
#[command(subcommand)]
|
|
|
|
command: ArgumentsSubcommand,
|
|
|
|
},
|
|
|
|
|
2023-11-01 16:56:32 +00:00
|
|
|
/// The log subcommand.
|
|
|
|
Log {
|
|
|
|
/// The data to log.
|
|
|
|
#[arg(last = true)]
|
|
|
|
data_to_log: Vec<String>,
|
|
|
|
},
|
|
|
|
}
|
2023-11-04 14:11:37 +00:00
|
|
|
|
|
|
|
/// The arguments subcommands.
|
|
|
|
#[derive(Debug, Subcommand)]
|
|
|
|
pub enum ArgumentsSubcommand {
|
|
|
|
/// Print the count of provided arguments.
|
|
|
|
Count {
|
|
|
|
/// The arguments to print the count of.
|
|
|
|
#[arg(last = true)]
|
|
|
|
arguments: Vec<String>,
|
|
|
|
|
|
|
|
/// Include a newline at the end of the number.
|
|
|
|
#[arg(short, long, default_value = "false")]
|
|
|
|
newline: bool,
|
|
|
|
},
|
|
|
|
}
|