changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate rust/bin/mailman/main.rs

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
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
1
 use clap::{Parser, Subcommand};
78
966f92770ddf lisp groveling and rust fmt
ellis <ellis@rwest.io>
parents: 71
diff changeset
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
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
4
 use std::path::PathBuf;
78
966f92770ddf lisp groveling and rust fmt
ellis <ellis@rwest.io>
parents: 71
diff changeset
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
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
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
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
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
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
23
 }
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
24
 
71
97c99e44a22f rustup tomfoolery - installer and lib/dl
ellis <ellis@rwest.io>
parents: 70
diff changeset
25
 #[derive(Subcommand, Debug)]
69
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
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
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
35
 }
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
36
 
67
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
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
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
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
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
49
 }