reactive_graph/tooling/instances/config/
instance.rs1use crate::shared::config::instance::InstanceConfigArgs;
2use crate::tooling::instances::config::serde::read_config_file;
3use crate::tooling::instances::config::serde::write_config_file;
4use reactive_graph_config_model::InstanceConfig;
5use std::path::PathBuf;
6
7pub const INSTANCE_CONFIG_FILENAME: &str = "instance.toml";
8
9pub fn handle_instance_config(config_dir: &PathBuf, args: InstanceConfigArgs) -> anyhow::Result<()> {
10 let path = get_instance_config_path(config_dir);
11 let mut config: InstanceConfig = read_config_file(&path)?;
12 let mut changed = false;
13 if let Some(name) = args.name {
14 config.name = name;
15 changed = true;
16 }
17 if let Some(description) = args.description {
18 config.description = description;
19 changed = true;
20 }
21 if changed {
22 write_config_file(&path, config)?;
23 }
24
25 Ok(())
26}
27
28pub fn get_instance_config_path(config_dir: &PathBuf) -> PathBuf {
29 let mut path = config_dir.to_owned();
30 path.push(INSTANCE_CONFIG_FILENAME);
31 path
32}