From fdf6085a3593481752816d8b156ec80bb21448cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Cluseau?= Date: Wed, 15 Jul 2026 16:43:46 +0200 Subject: [PATCH] more verbose apply errors --- Dockerfile | 4 ++-- src/apply.rs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3f6430a..53a898e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -from mcluseau/rust:1.95.0 as build +from mcluseau/rust:1.97.0 as build workdir /app copy . . @@ -10,6 +10,6 @@ run \ && find target/release -maxdepth 1 -type f -executable -exec cp -v {} /dist/ + # ------------------------------------------------------------------------ -from alpine:3.23.4 +from alpine:3.24.0 copy --from=build /dist/ /bin/ diff --git a/src/apply.rs b/src/apply.rs index 53b629a..01547e6 100644 --- a/src/apply.rs +++ b/src/apply.rs @@ -1,4 +1,4 @@ -use eyre::{Result, format_err}; +use eyre::{Result, format_err, eyre}; use log::info; use std::path::Path; use tokio::fs; @@ -36,14 +36,14 @@ pub async fn file(file: &File, root: &str, dry_run: bool) -> Result<()> { if dry_run { info!("would create {} ({} bytes)", file.path, content.len()); } else { - fs::write(path, &content).await?; + fs::write(path, &content).await.map_err(|e| eyre!("write {}: {e}", path.display()))?; } } K::Dir => { if dry_run { info!("would create {} (directory)", file.path); } else { - fs::create_dir(path).await?; + fs::create_dir(path).await.map_err(|e| eyre!("create dir {}: {e}", path.display()))?; } } K::Symlink(tgt) => { @@ -51,7 +51,7 @@ pub async fn file(file: &File, root: &str, dry_run: bool) -> Result<()> { info!("would create {} (symlink to {})", file.path, tgt); } else { let _ = fs::remove_file(path).await; // we're ln --force - fs::symlink(tgt, path).await?; + fs::symlink(tgt, path).await.map_err(|e| eyre!("symlink {} -> {tgt}: {e}", path.display()))?; } } }