diff --git a/Cargo.lock b/Cargo.lock index 710edc6..2337215 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -790,6 +790,7 @@ dependencies = [ "cfg-if", "clap", "serde", + "serde_json", "serde_yaml", "tera", ] diff --git a/Cargo.toml b/Cargo.toml index 8ad1e1c..a0c2258 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ anyhow = "1.0.75" cfg-if = "1.0.0" clap = { version = "4.4.4", features = ["derive"] } serde = { version = "1.0.188", features = ["derive"] } +serde_json = "1.0.107" serde_yaml = "0.9.25" tera = "1.19.1" diff --git a/src/lib.rs b/src/lib.rs index 273a5f1..712f44d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -128,8 +128,8 @@ pub fn setup_tera(recipe: String, containerfile: Option) -> Result<(Ter "print_module_context", |args: &HashMap| -> tera::Result { match args.get("module") { - Some(v) => Ok(match serde_yaml::to_string(v) { - Ok(s) => s.escape_default().collect::(), + Some(v) => Ok(match serde_json::to_string(v) { + Ok(s) => s, Err(_) => "Unable to serialize".into(), } .into()), diff --git a/templates/Containerfile.modules b/templates/Containerfile.modules index 35b02b4..0bb3d62 100644 --- a/templates/Containerfile.modules +++ b/templates/Containerfile.modules @@ -35,7 +35,7 @@ ARG BASE_IMAGE="{{ base_image }}" {% endfor %} {% else %} RUN chmod +x /tmp/modules/{{ module.type }}/{{ module.type }}.sh -RUN source /tmp/exports.sh && OS_VERSION="$(grep -Po '(?<=VERSION_ID=)\d+' /usr/lib/os-release)" /tmp/modules/{{ module.type }}/{{ module.type }}.sh "$(echo -e "{{ print_module_context(module = module) }}")" +RUN source /tmp/exports.sh && OS_VERSION="$(grep -Po '(?<=VERSION_ID=)\d+' /usr/lib/os-release)" /tmp/modules/{{ module.type }}/{{ module.type }}.sh '{{ print_module_context(module = module) }}' {% endif %} {% elif module["from-file"] %} {% set extra_module = get_module_from_file(file = module["from-file"]) %}