reactive_graph_tooling/tooling/instances/config/
mod.rs1use 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}