support_kit/boilerplate/
boilerplate_context.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use convert_case::Casing;
use serde::Serialize;

use crate::Configuration;

#[derive(Debug, Clone, bon::Builder, Serialize)]
pub struct BoilerplateContext {
    #[builder(into)]
    pub name: String,
    #[builder(default, into)]
    pub secret_name: String,
    pub image: Option<String>,
}

impl From<Configuration> for BoilerplateContext {
    fn from(config: Configuration) -> Self {
        let secret_name = config
            .name()
            .to_string()
            .to_case(convert_case::Case::UpperSnake);

        Self::builder()
            .name(config.name())
            .secret_name(secret_name)
            .build()
    }
}