changeset 698: | 96958d3eb5b0 |
parent: | 94d358919982 |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Fri, 04 Oct 2024 22:04:59 -0400 |
permissions: | -rw-r--r-- |
description: | fixes |
69 | 1 | use clap::{Parser, Subcommand}; |
78 | 2 | use logger::{trace, Logger}; |
71
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
3 | // use obj::Objective; |
69 | 4 | use std::path::PathBuf; |
78 | 5 | use util::{cli::log_level_str_from_cli, Result}; |
71
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
6 | // use jmap_client::{client::Client, core::query::Filter, email, mailbox}; |
69 | 7 | |
71
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
8 | #[derive(Debug, Parser)] |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
9 | #[command(name="mailman",author, version, about, long_about = None)] |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
10 | struct Cli { |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
11 | /// Command to run |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
12 | #[command(subcommand)] |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
13 | cmd: Option<Cmd>, |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
14 | /// Set the default config file |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
15 | #[arg(short, long, env = "MAILMAN_CONFIG_FILE")] |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
16 | cfg: Option<PathBuf>, |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
17 | /// Set a user for this command |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
18 | #[arg(short, long, env = "USER")] |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
19 | user: Option<String>, |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
20 | /// Set log level |
69 | 21 | #[arg(short, long, action = clap::ArgAction::Count)] |
71
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
22 | level: u8, |
69 | 23 | } |
24 | ||
71
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
25 | #[derive(Subcommand, Debug)] |
69 | 26 | enum Cmd { |
71
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
27 | /// Ping the server |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
28 | Ping, |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
29 | /// Search for items |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
30 | Search, |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
31 | /// Import an account |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
32 | Import, |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
33 | /// Export an account |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
34 | Export, |
69 | 35 | } |
36 | ||
67 | 37 | #[tokio::main] |
71
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
38 | async fn main() -> Result<()> { |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
39 | // parse args |
69 | 40 | let args = Cli::parse(); |
71
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
41 | // init logger |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
42 | Logger::try_with_str(log_level_str_from_cli(args.level))?.start()?; |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
43 | trace!("{:?}", args); |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
44 | // load config |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
45 | |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
46 | let args = Cli::parse(); |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
47 | println!("{:?}", args.cmd); |
97c99e44a22f
rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents:
70
diff
changeset
|
48 | Ok(()) |
67 | 49 | } |