reactive_graph_tooling/tooling/instances/config/
mod.rs

1use crate::tooling::instances::config::args::ConfigInstanceArgs;
2use crate::tooling::instances::config::commands::InstanceConfigCommands;
3use crate::tooling::instances::config::graphql::handle_graphql_config;
4use crate::tooling::instances::config::instance::handle_instance_config;
5use crate::tooling::instances::config::plugins::handle_plugins_config;
6use std::path::PathBuf;
7
8pub mod args;
9pub mod commands;
10pub mod graphql;
11pub mod instance;
12pub mod plugins;
13pub mod serde;
14
15pub const CONFIG_DIR_NAME: &str = "config";
16
17pub fn handle_config(instance_dir: &PathBuf, args: ConfigInstanceArgs) -> anyhow::Result<()> {
18    let config_dir = get_config_dir(instance_dir);
19    match args.commands {
20        InstanceConfigCommands::Graphql(args) => handle_graphql_config(&config_dir, args),
21        InstanceConfigCommands::Instance(args) => handle_instance_config(&config_dir, args),
22        InstanceConfigCommands::Plugins(args) => handle_plugins_config(&config_dir, args),
23    }
24}
25
26pub fn get_config_dir(instance_dir: &PathBuf) -> PathBuf {
27    let mut config_dir = instance_dir.to_owned();
28    config_dir.push(CONFIG_DIR_NAME);
29    config_dir
30}