fix: Properly escape module json

This commit is contained in:
Gerald Pinder 2024-09-14 00:58:41 -04:00
parent ce717118ce
commit fbf57e5c83
6 changed files with 11 additions and 17 deletions

2
Cargo.lock generated
View file

@ -3385,6 +3385,8 @@ dependencies = [
"num-traits",
"percent-encoding",
"rinja_derive",
"serde",
"serde_json",
]
[[package]]

View file

@ -52,6 +52,3 @@ workspace = true
[features]
sigstore = ["dep:tokio", "dep:sigstore"]
[patch.crates-io]
sigstore = { git = "https://github.com/gmpinder/sigstore-rs.git", rev = "cd0d10429fc09ddb08a8d1c7244a1623772113af" }

View file

@ -1,9 +1,9 @@
use std::{borrow::Cow, path::PathBuf, process};
use std::{borrow::Cow, path::PathBuf};
use blue_build_utils::syntax_highlighting::highlight_ser;
use colored::Colorize;
use indexmap::IndexMap;
use log::{error, trace, warn};
use log::{trace, warn};
use miette::{bail, Result};
use serde::{Deserialize, Serialize};
use serde_yaml::Value;
@ -62,14 +62,6 @@ impl<'a> ModuleRequiredFields<'a> {
self.get_module_type_list("containerfile", "snippets")
}
#[must_use]
pub fn print_module_context(&'a self) -> String {
serde_json::to_string(self).unwrap_or_else(|e| {
error!("Failed to parse module!!!!!: {e}");
process::exit(1);
})
}
#[must_use]
#[allow(clippy::missing_const_for_fn)]
pub fn get_copy_args(&'a self) -> Option<(Option<&'a str>, &'a str, &'a str)> {

View file

@ -9,7 +9,7 @@ license.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rinja = "0.3.0"
rinja = { version = "0.3.0", features = ["serde_json"] }
blue-build-recipe = { version = "=0.8.17", path = "../recipe" }
blue-build-utils = { version = "=0.8.17", path = "../utils" }

View file

@ -152,7 +152,10 @@ fn should_color() -> bool {
mod filters {
#[allow(clippy::unnecessary_wraps)]
pub fn replace<T: std::fmt::Display>(input: T, from: char, to: &str) -> rinja::Result<String> {
pub fn replace<T>(input: T, from: char, to: &str) -> rinja::Result<String>
where
T: std::fmt::Display,
{
Ok(format!("{input}").replace(from, to))
}
}

View file

@ -27,7 +27,7 @@ RUN \
{%- endif %}
--mount=type=bind,from=ghcr.io/blue-build/cli:{{ exports_tag }}-build-scripts,src=/scripts/,dst=/tmp/scripts/ \
--mount=type=cache,dst=/var/cache/rpm-ostree,id=rpm-ostree-cache-{{ recipe.name }}-{{ recipe.image_version }},sharing=locked \
/tmp/scripts/run_module.sh '{{ module.module_type }}' '{{ module.print_module_context() }}' \
/tmp/scripts/run_module.sh '{{ module.module_type }}' '{{ module|json|safe }}' \
&& ostree container commit
{%- endif %}
{%- endif %}
@ -59,7 +59,7 @@ RUN \
--mount=type=bind,from=stage-modules,src=/modules,dst=/tmp/modules,rw \
{%- endif %}
--mount=type=bind,from=ghcr.io/blue-build/cli:{{ exports_tag }}-build-scripts,src=/scripts/,dst=/tmp/scripts/ \
/tmp/scripts/run_module.sh '{{ module.module_type }}' '{{ module.print_module_context() }}'
/tmp/scripts/run_module.sh '{{ module.module_type }}' '{{ module|json|safe }}'
{%- endif %}
{%- endif %}
{%- endfor %}