use super::{
generate::GenerateCmd, generate_node_key::GenerateNodeKeyCmd, insert_key::InsertKeyCmd,
inspect_key::InspectKeyCmd, inspect_node_key::InspectNodeKeyCmd,
};
use crate::{BizinikiwiCli, Error};
#[derive(Debug, clap::Subcommand)]
pub enum KeySubcommand {
GenerateNodeKey(GenerateNodeKeyCmd),
Generate(GenerateCmd),
Inspect(InspectKeyCmd),
InspectNodeKey(InspectNodeKeyCmd),
Insert(InsertKeyCmd),
}
impl KeySubcommand {
pub fn run<C: BizinikiwiCli>(&self, cli: &C) -> Result<(), Error> {
match self {
KeySubcommand::GenerateNodeKey(cmd) => {
let chain_spec = cli.load_spec(cmd.chain.as_deref().unwrap_or(""))?;
cmd.run(chain_spec.id(), &C::executable_name())
},
KeySubcommand::Generate(cmd) => cmd.run(),
KeySubcommand::Inspect(cmd) => cmd.run(),
KeySubcommand::Insert(cmd) => cmd.run(cli),
KeySubcommand::InspectNodeKey(cmd) => cmd.run(),
}
}
}