fixed cuddle image

This commit is contained in:
2022-08-14 21:06:07 +02:00
parent 319360968b
commit a1472194d2
7 changed files with 75 additions and 5 deletions

View File

@@ -9,6 +9,7 @@ use clap::Command;
use crate::{
actions::CuddleAction,
config::{CuddleConfig, CuddleFetchPolicy},
context::{CuddleContext, CuddleTreeType},
model::*,
util::git::GitCommit,
@@ -23,16 +24,21 @@ pub struct CuddleCli<'a> {
context: Arc<Mutex<Vec<CuddleContext>>>,
command: Option<Command<'a>>,
tmp_dir: Option<PathBuf>,
config: CuddleConfig,
}
impl<'a> CuddleCli<'a> {
pub fn new(context: Arc<Mutex<Vec<CuddleContext>>>) -> anyhow::Result<CuddleCli<'a>> {
pub fn new(
context: Arc<Mutex<Vec<CuddleContext>>>,
config: CuddleConfig,
) -> anyhow::Result<CuddleCli<'a>> {
let mut cli = CuddleCli {
scripts: vec![],
variables: vec![],
context: context.clone(),
command: None,
tmp_dir: None,
config,
};
cli = cli
@@ -106,8 +112,13 @@ impl<'a> CuddleCli<'a> {
.tmp_dir
.clone()
.ok_or(anyhow::anyhow!("tmp_dir does not exist aborting"))?;
if tmp_dir.exists() && tmp_dir.ends_with("tmp") {
std::fs::remove_dir_all(tmp_dir.clone())?;
match self.config.get_fetch_policy()? {
CuddleFetchPolicy::Always => {
if tmp_dir.exists() && tmp_dir.ends_with("tmp") {
std::fs::remove_dir_all(tmp_dir.clone())?;
}
}
_ => {}
}
std::fs::create_dir_all(tmp_dir.clone())?;
// Handle all templating with variables and such.

View File

@@ -6,7 +6,7 @@ pub enum CuddleFetchPolicy {
Never,
}
#[derive(Envconfig, Clone)]
#[derive(Envconfig, Clone, Debug)]
pub struct CuddleConfig {
#[envconfig(from = "CUDDLE_FETCH_POLICY", default = "once")]
fetch_policy: String,

View File

@@ -14,7 +14,7 @@ fn main() -> anyhow::Result<()> {
let config = CuddleConfig::from_env()?;
let context = context::extract_cuddle(config.clone())?;
_ = cli::CuddleCli::new(context)?.execute()?;
_ = cli::CuddleCli::new(context, config)?.execute()?;
Ok(())
}