use clap::Parser;
use pyrinas_cli::{ota, CertCmd, Error};
use pyrinas_cli::{ConfigCmd, OtaCmd};
#[derive(Parser)]
#[clap(version)]
struct Opts {
#[clap(subcommand)]
subcmd: SubCommand,
}
#[derive(Parser)]
#[clap(version)]
enum SubCommand {
Ota(OtaCmd),
Config(ConfigCmd),
Cert(CertCmd),
}
fn main() -> Result<(), Error> {
let opts: Opts = Opts::parse();
env_logger::init();
let config = match pyrinas_cli::config::get_config() {
Ok(c) => c,
Err(_e) => {
return Err(Error::CustomError(
"Unable to get config. Run \"init\" command before you continue.".to_string(),
))
}
};
match opts.subcmd {
SubCommand::Ota(c) => {
let mut socket = pyrinas_cli::get_socket(&config)?;
crate::ota::process(&mut socket, &c.subcmd)?;
}
SubCommand::Cert(c) => pyrinas_cli::certs::process(&config, &c)?,
SubCommand::Config(c) => pyrinas_cli::config::process(&config, &c)?,
}
Ok(())
}