reactive_graph_tooling/tooling/instances/config/
plugins.rs1use crate::shared::config::plugins::PluginsConfigArgs;
2use crate::tooling::instances::config::serde::read_config_file;
3use crate::tooling::instances::config::serde::write_config_file;
4use reactive_graph_config_model::PluginsConfig;
5use std::path::PathBuf;
6
7pub const PLUGINS_CONFIG_FILENAME: &str = "plugins.toml";
8
9pub fn handle_plugins_config(config_dir: &PathBuf, args: PluginsConfigArgs) -> anyhow::Result<()> {
10 let path = get_plugins_config_path(config_dir);
11 let mut config: PluginsConfig = read_config_file(&path)?;
12 let mut changed = false;
13 if let Some(disable_all_plugins) = args.disable_all_plugins {
14 config.disabled = Some(disable_all_plugins);
15 changed = true;
16 }
17 if let Some(disabled_plugins) = args.disabled_plugins {
18 config.disabled_plugins = Some(disabled_plugins);
19 changed = true;
20 }
21 if let Some(enabled_plugins) = args.enabled_plugins {
22 config.enabled_plugins = Some(enabled_plugins);
23 changed = true;
24 }
25 if let Some(disable_hot_deploy) = args.disable_hot_deploy {
26 config.hot_deploy = Some(!disable_hot_deploy);
27 changed = true;
28 }
29 if let Some(install_location) = args.install_location {
30 config.install_location = Some(install_location);
31 changed = true;
32 }
33 if let Some(hot_deploy_location) = args.hot_deploy_location {
34 config.hot_deploy_location = Some(hot_deploy_location);
35 changed = true;
36 }
37 if changed {
38 write_config_file(&path, config)?;
39 }
40 Ok(())
41}
42
43pub fn get_plugins_config_path(config_dir: &PathBuf) -> PathBuf {
44 let mut path = config_dir.to_owned();
45 path.push(PLUGINS_CONFIG_FILENAME);
46 path
47}