blue_cli/
config.rs

1#[derive(serde::Deserialize)]
2pub struct RootWorkspaceConfig {
3    pub name: Option<String>,
4    pub clean_dirs: Vec<String>,
5    pub prefered_config_file_type: String,
6}
7
8#[derive(serde::Deserialize)]
9pub struct JavaScriptConfig {
10    pub workspace: Vec<String>,
11    pub package_manager: String,
12}
13
14#[derive(serde::Deserialize)]
15pub struct RustConfig {
16    pub workspace: Vec<String>,
17}
18
19#[derive(serde::Deserialize)]
20pub struct DockerComposeProfile {
21    pub name: String,
22    pub file: String,
23}
24
25#[derive(serde::Deserialize)]
26pub struct DockerComposeConfig {
27    pub profiles: Vec<DockerComposeProfile>,
28}
29
30#[derive(serde::Deserialize)]
31pub struct DockerConfig {
32    pub compose: DockerComposeConfig,
33}
34
35#[derive(serde::Deserialize)]
36pub struct EnvTemplate {
37    pub file: String,
38    pub dest: String,
39}
40
41#[derive(serde::Deserialize)]
42pub struct EnvConfig {
43    pub delegate: bool,
44    pub templates: Vec<EnvTemplate>,
45}
46
47#[derive(serde::Deserialize)]
48pub struct Config {
49    pub workspace: Option<RootWorkspaceConfig>,
50    pub javascript: Option<JavaScriptConfig>,
51    pub rust: Option<RustConfig>,
52    pub docker: Option<DockerConfig>,
53    pub env: Option<EnvConfig>,
54}