ax 2.18.2

ax distributed event databank and command line tool
mod addkey;
mod devcert;
mod keygen;
mod pubkey;

use crate::cmd::AxCliCommand;
use futures::Future;

use addkey::AddKeyOpts;
use devcert::DevCertOpts;
use keygen::KeygenOpts;
use pubkey::PubkeyOpts;

/// manage user keys
#[derive(clap::Subcommand, Clone, Debug)]
pub enum UsersOpts {
    /// Install a user key into /admin/authorizedUsers of a local AX node that is not currently running.
    AddKey(AddKeyOpts),
    /// Generate a new user key pair for interacting with an AX node.
    Keygen(KeygenOpts),
    /// Show public key corresponding to a private key.
    Pubkey(PubkeyOpts),
    /// Generate a new developer certificate.
    DevCert(DevCertOpts),
}

pub fn run(opts: UsersOpts, json: bool) -> Box<dyn Future<Output = ()> + Unpin> {
    match opts {
        UsersOpts::Keygen(opt) => keygen::UsersKeygen::output(opt, json),
        UsersOpts::AddKey(opt) => addkey::UsersAddKey::output(opt, json),
        UsersOpts::DevCert(opt) => devcert::UsersDevCert::output(opt, json),
        UsersOpts::Pubkey(opt) => pubkey::UsersPubkey::output(opt, json),
    }
}