feat: without remove dir all assertion

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
Kasper Juul Hermansen 2024-01-28 16:54:25 +01:00
parent 85cc1d46db
commit ede55b975b
Signed by: kjuulh
GPG Key ID: 9AA7BC13CE474394
3 changed files with 11 additions and 7 deletions

View File

@ -72,8 +72,8 @@ impl FolderCommand {
} }
pub fn execute(self) -> anyhow::Result<()> { pub fn execute(self) -> anyhow::Result<()> {
std::fs::remove_dir_all(&self.destination)?; let _ = std::fs::remove_dir_all(&self.destination);
std::fs::create_dir_all(&self.destination)?; std::fs::create_dir_all(&self.destination).context("failed to create directory")?;
// Prepare context // Prepare context
let mut context = tera::Context::new(); let mut context = tera::Context::new();
@ -86,7 +86,7 @@ impl FolderCommand {
tera.register_function("filter_by_prefix", filter_by_prefix(self.variables.clone())); tera.register_function("filter_by_prefix", filter_by_prefix(self.variables.clone()));
for entry in walkdir::WalkDir::new(&self.source) { for entry in walkdir::WalkDir::new(&self.source) {
let entry = entry?; let entry = entry.context("entry was not found")?;
let entry_path = entry.path(); let entry_path = entry.path();
let rel_path = self let rel_path = self
.destination .destination
@ -94,12 +94,13 @@ impl FolderCommand {
if entry_path.is_file() { if entry_path.is_file() {
// Load source template // Load source template
let source = std::fs::read_to_string(entry_path)?; let source = std::fs::read_to_string(entry_path)
.context("failed to read entry into memory")?;
let output = tera.render_str(&source, &context)?; let output = tera.render_str(&source, &context)?;
if let Some(parent) = rel_path.parent() { if let Some(parent) = rel_path.parent() {
std::fs::create_dir_all(parent)?; std::fs::create_dir_all(parent).context("failed to create parent dir")?;
} }
// Put template in final destination // Put template in final destination

View File

@ -47,7 +47,7 @@ impl KustomizeCommand {
pub fn execute(self) -> anyhow::Result<()> { pub fn execute(self) -> anyhow::Result<()> {
let mut cmd = std::process::Command::new("kubectl"); let mut cmd = std::process::Command::new("kubectl");
std::fs::remove_dir_all(&self.destination)?; let _ = std::fs::remove_dir_all(&self.destination);
std::fs::create_dir_all(&self.destination)?; std::fs::create_dir_all(&self.destination)?;
let cmd = cmd.arg("kustomize").arg(self.kustomize_folder); let cmd = cmd.arg("kustomize").arg(self.kustomize_folder);

View File

@ -1,3 +1,4 @@
use anyhow::Context;
use clap::{ArgMatches, Command}; use clap::{ArgMatches, Command};
use crate::cli::CuddleCli; use crate::cli::CuddleCli;
@ -21,7 +22,9 @@ impl RenderCommand {
KustomizeCommand::from_matches(sub_matches, cli)?.execute()?; KustomizeCommand::from_matches(sub_matches, cli)?.execute()?;
} }
Some(("folder", sub_matches)) => { Some(("folder", sub_matches)) => {
FolderCommand::from_matches(sub_matches, cli)?.execute()?; FolderCommand::from_matches(sub_matches, cli)?
.execute()
.context("failed to render folder")?;
} }
_ => anyhow::bail!("failed to find match for render"), _ => anyhow::bail!("failed to find match for render"),
} }