use clap::{Parser, Subcommand}; use crate::sub_commands; #[derive(Parser)] #[command(author, version, about, long_about = None)] #[command(propagate_version = true)] pub struct Cli { #[command(subcommand)] pub command: Commands, /// remote signer address #[arg(long, global = true)] pub bunker_uri: Option, /// remote signer app secret key #[arg(long, global = true)] pub bunker_app_key: Option, /// nsec or hex private key #[arg(short, long, global = true)] pub nsec: Option, /// password to decrypt nsec #[arg(short, long, global = true)] pub password: Option, /// disable spinner animations #[arg(long, action)] pub disable_cli_spinners: bool, } #[derive(Subcommand)] pub enum Commands { /// signal you are this repo's maintainer accepting proposals via nostr Init(sub_commands::init::SubCommandArgs), /// issue commits as a proposal Send(sub_commands::send::SubCommandArgs), /// list proposals; checkout, apply or download selected List, /// run with --nsec flag to change npub Login(sub_commands::login::SubCommandArgs), }