difftreelog
fix make it run on stable
in: trunk
1 file changed
src/main.rsdiffbeforeafterboth1#![feature(once_cell)]23pub mod command;4pub mod host;5pub mod keys;67pub mod cmds;8pub mod nix;910mod fleetdata;1112use anyhow::Result;13use clap::Clap;1415use cmds::{build_systems::BuildSystems, secrets::Secrets};16use host::{Config, FleetOpts};1718#[derive(Clap)]19#[clap(version = "1.0", author = "CertainLach <iam@lach.pw>")]20enum Opts {21 /// Prepare systems for deployments22 BuildSystems(BuildSystems),23 /// Secret management24 Secrets(Secrets),25}2627#[derive(Clap)]28struct RootOpts {29 #[clap(flatten)]30 fleet_opts: FleetOpts,31 #[clap(subcommand)]32 command: Opts,33}3435fn run_command(config: &Config, command: Opts) -> Result<()> {36 match command {37 Opts::BuildSystems(c) => c.run(config)?,38 Opts::Secrets(s) => s.run(config)?,39 };40 Ok(())41}4243fn main() -> Result<()> {44 env_logger::Builder::new()45 .filter_level(log::LevelFilter::Info)46 .init();47 let opts = RootOpts::parse();48 let config = opts.fleet_opts.build()?;4950 match run_command(&config, opts.command) {51 Ok(()) => {52 config.save()?;53 Ok(())54 }55 Err(e) => {56 let _ = config.save();57 Err(e)58 }59 }60}1pub mod command;2pub mod host;3pub mod keys;45pub mod cmds;6pub mod nix;78mod fleetdata;910use anyhow::Result;11use clap::Clap;1213use cmds::{build_systems::BuildSystems, secrets::Secrets};14use host::{Config, FleetOpts};1516#[derive(Clap)]17#[clap(version = "1.0", author = "CertainLach <iam@lach.pw>")]18enum Opts {19 /// Prepare systems for deployments20 BuildSystems(BuildSystems),21 /// Secret management22 Secrets(Secrets),23}2425#[derive(Clap)]26struct RootOpts {27 #[clap(flatten)]28 fleet_opts: FleetOpts,29 #[clap(subcommand)]30 command: Opts,31}3233fn run_command(config: &Config, command: Opts) -> Result<()> {34 match command {35 Opts::BuildSystems(c) => c.run(config)?,36 Opts::Secrets(s) => s.run(config)?,37 };38 Ok(())39}4041fn main() -> Result<()> {42 env_logger::Builder::new()43 .filter_level(log::LevelFilter::Info)44 .init();45 let opts = RootOpts::parse();46 let config = opts.fleet_opts.build()?;4748 match run_command(&config, opts.command) {49 Ok(()) => {50 config.save()?;51 Ok(())52 }53 Err(e) => {54 let _ = config.save();55 Err(e)56 }57 }58}