reactive_graph_tooling/tooling/instances/repositories/
init.rs1use crate::tooling::instances::provisioning::create_dir;
2use crate::tooling::instances::repositories::args::InitRepositoryArgs;
3use anyhow::Result;
4use anyhow::anyhow;
5use std::path::Path;
6
7pub fn init_repository(instance_dir: &Path, args: InitRepositoryArgs) -> Result<()> {
8 let chown = args.chown.get_chown();
9 let mut repository_dir = instance_dir.to_owned();
10 repository_dir.push(format!("repositories/{}", args.local_name));
11 match args.url {
12 None => {
13 create_dir(&repository_dir, "types/components", &chown)?;
14 create_dir(&repository_dir, "types/entities", &chown)?;
15 create_dir(&repository_dir, "types/relations", &chown)?;
16 create_dir(&repository_dir, "types/flows", &chown)?;
17 create_dir(&repository_dir, "instances/entities", &chown)?;
18 create_dir(&repository_dir, "instances/relations", &chown)?;
19 create_dir(&repository_dir, "instances/flows", &chown)?;
20 Ok(())
21 }
22 Some(_url) => {
23 Err(anyhow!("Not yet implemented"))
26 }
27 }
28}