use std::fs; use crate::{ api::model::Cluster, core::config, core::{config::ManageMode, Ctx}, }; use anyhow::{Context, Result}; pub(crate) fn new(ctx: &mut Ctx, name: Option<String>) -> Result<()> { let target = std::env::current_dir()?.join("cluster.ron"); let cluster = Cluster::new(name.clone(), target.clone()); let pretty = ron::ser::to_string_pretty(&cluster, ron::ser::PrettyConfig::new())?; fs::write(&target, &pretty).context("Unable to write cluster file")?; println!( "Created cluster {}", if name.is_some() { name.as_ref().unwrap() } else { "" } ); ctx.config.mode = ManageMode::Server; println!("Set management mode to server"); config::save_config(ctx.dirs.config_dir(), &ctx.config)?; Ok(()) }