Skip to main content

pigeon/
cli.rs

1use clap::{Parser, Subcommand};
2
3use crate::commands::job::cli::JobArgs;
4use crate::commands::keyring::cli::KeyringArgs;
5
6/// Pigeon: authenticate, sink, and transform personal data from external services.
7#[derive(Parser, Debug)]
8#[command(name = "pigeon", version, about, long_about = None)]
9pub struct Cli {
10    #[command(subcommand)]
11    pub command: Commands,
12}
13
14#[derive(Subcommand, Debug)]
15pub enum Commands {
16    /// Manage email identities and bucket-configs
17    Keyring(KeyringArgs),
18    /// Run job-orchestrated pipelines (e.g. email-sync)
19    Job(JobArgs),
20}