cli/
cli.rs

1use clap::Parser;
2use libpt_cli::args::VerbosityLevel;
3use libpt_cli::printing;
4use libpt_log::{debug, Logger};
5
6/// This is the help
7///
8/// This is more help
9#[derive(Parser, Debug)]
10struct Cli {
11    // already has documentation
12    #[command(flatten)]
13    verbosity: VerbosityLevel,
14
15    /// texts to be echoed
16    #[arg(required = true)]
17    text: Vec<String>,
18
19    /// try to be more machine readable
20    #[arg(short, long)]
21    machine: bool,
22}
23
24fn main() {
25    let cli = Cli::parse();
26    let _logger = Logger::builder().set_level(cli.verbosity.level()).build();
27
28    debug!("logger initialized with level: {}", cli.verbosity.level());
29
30    if !cli.machine {
31        let text = cli.text.join(" ");
32        printing::blockprint(text, console::Color::Green);
33    } else {
34        for text in cli.text {
35            println!("{text}")
36        }
37    }
38}