Clean up error conversions after miette migration
Use map_err with miette! directly instead of map_err + wrap_err
chains. LuaError is not Send + Sync so it cannot use into_diagnostic;
the map_err pattern with an inline message is simpler anyway.

into_diagnostic remains only for fs-err errors (Send + Sync, and
fs-err already includes the path in its messages).

Assisted-by: Claude Opus 4.6 via pi
change pqtrvrwykrrsolpztwzwrrvvwwwxsyup
commit d246c7322ac950d0ab9cee656d1e33ba0581aefb
author Alpha Chen <alpha@kejadlen.dev>
date
parent qpoxvuns
diff --git a/frork-cli/src/assertions.rs b/frork-cli/src/assertions.rs
index 5dfaa0c..1c4382c 100644
--- a/frork-cli/src/assertions.rs
+++ b/frork-cli/src/assertions.rs
@@ -1,5 +1,7 @@
 use fs_err as fs;
-use miette::{Result, miette};
+use miette::IntoDiagnostic as _;
+use miette::Result;
+use miette::miette;
 use mlua::prelude::*;
 use serde::Deserialize;
 use std::path::Path;
@@ -33,7 +35,7 @@ where
     fn create(&self, lua: &Lua, args: LuaMultiValue) -> Result<Box<dyn AssertionType>> {
         T::from_lua_multi(args, lua)
             .map(|t| Box::new(t) as Box<dyn AssertionType>)
-            .map_err(|e| miette!("Failed to create assertion type: {}", e))
+            .map_err(|e| miette!("Failed to create assertion type: {e}"))
     }
 }
 
@@ -178,7 +180,7 @@ impl AssertionType for Symlink {
     fn install(&self) -> Result<()> {
         use std::os::unix::fs;
         fs::symlink(&self.source, &self.target)
-            .map_err(|e| miette!("Failed to create symlink: {}", e))?;
+            .map_err(|e| miette!("Failed to create symlink: {e}"))?;
         debug!("created: {}", self);
         Ok(())
     }
@@ -225,7 +227,7 @@ impl AssertionType for Directory {
     }
 
     fn install(&self) -> Result<()> {
-        fs::create_dir_all(&self.path).map_err(|e| miette!("Failed to create directory: {}", e))?;
+        fs::create_dir_all(&self.path).into_diagnostic()?;
         debug!("created: {}", self);
         Ok(())
     }
@@ -267,7 +269,7 @@ impl AssertionType for Debug {
         if let Some(ref status_fn) = self.status_fn {
             let result = status_fn
                 .call::<Status>(LuaMultiValue::new())
-                .map_err(|e| miette!("Debug status function failed: {}", e))?;
+                .map_err(|e| miette!("Debug status function failed: {e}"))?;
             Ok(result)
         } else {
             Ok(Status::Ok)
@@ -282,7 +284,7 @@ impl AssertionType for Debug {
             .ok_or_else(|| miette!("Install not implemented for debug assertion"))?;
         install_fn
             .call::<()>(LuaMultiValue::new())
-            .map_err(|e| miette!("Debug install function failed: {}", e))?;
+            .map_err(|e| miette!("Debug install function failed: {e}"))?;
         Ok(())
     }
 
@@ -334,8 +336,7 @@ impl AssertionType for Git {
         }
 
         // Check if directory is empty (only . and ..)
-        let mut entries =
-            fs::read_dir(dir_path).map_err(|e| miette!("Failed to read directory: {}", e))?;
+        let mut entries = fs::read_dir(dir_path).into_diagnostic()?;
         if entries.next().is_none() {
             return Ok(Status::Missing);
         }
diff --git a/frork-cli/src/main.rs b/frork-cli/src/main.rs
index 6a22411..6b14008 100644
--- a/frork-cli/src/main.rs
+++ b/frork-cli/src/main.rs
@@ -188,19 +188,19 @@ fn setup_lua(
     let fennel_module: LuaTable = lua
         .load(fennel_code)
         .eval()
-        .map_err(|e| miette!("Failed to load Fennel: {}", e))?;
+        .map_err(|e| miette!("Failed to load Fennel: {e}"))?;
     lua.register_module("fennel", &fennel_module)
-        .map_err(|e| miette!("Failed to register fennel module: {}", e))?;
+        .map_err(|e| miette!("Failed to register fennel module: {e}"))?;
 
     let frork_table = match Frork::new(handle_status, lua.clone())
         .into_lua(&lua)
-        .map_err(|e| miette!("Failed to create frork table: {}", e))?
+        .map_err(|e| miette!("Failed to create frork table: {e}"))?
     {
         LuaValue::Table(table) => table,
         _ => unreachable!(),
     };
     lua.register_module("frork", &frork_table)
-        .map_err(|e| miette!("Failed to register frork module: {}", e))?;
+        .map_err(|e| miette!("Failed to register frork module: {e}"))?;
 
     Ok((lua, frork_table, fennel_module))
 }
@@ -213,18 +213,18 @@ fn run_code(
 
     let ok_fn: LuaFunction = frork_module
         .get("ok")
-        .map_err(|e| miette!("Failed to get frork.ok: {}", e))?;
+        .map_err(|e| miette!("Failed to get frork.ok: {e}"))?;
     lua.globals()
         .set("ok", ok_fn)
-        .map_err(|e| miette!("Failed to set ok global: {}", e))?;
+        .map_err(|e| miette!("Failed to set ok global: {e}"))?;
 
     let eval_fn: LuaFunction = fennel_module
         .get("eval")
-        .map_err(|e| miette!("Failed to get fennel.eval: {}", e))?;
+        .map_err(|e| miette!("Failed to get fennel.eval: {e}"))?;
 
     eval_fn
         .call::<()>(code)
-        .map_err(|e| miette!("Failed to execute fennel code: {}", e))?;
+        .map_err(|e| miette!("Failed to execute fennel code: {e}"))?;
 
     Ok(())
 }
@@ -243,19 +243,19 @@ fn run_script(
         let package_table: LuaTable = lua
             .globals()
             .get("package")
-            .map_err(|e| miette!("Failed to get package table: {}", e))?;
+            .map_err(|e| miette!("Failed to get package table: {e}"))?;
 
         // Add to Lua search path
         let current_path: String = package_table
             .get("path")
-            .map_err(|e| miette!("Failed to get current Lua path: {}", e))?;
+            .map_err(|e| miette!("Failed to get current Lua path: {e}"))?;
         let new_path = format!(
             "{};{}/?.lua;{}/?/init.lua",
             current_path, script_dir_str, script_dir_str
         );
         package_table
             .set("path", new_path)
-            .map_err(|e| miette!("Failed to set Lua path: {}", e))?;
+            .map_err(|e| miette!("Failed to set Lua path: {e}"))?;
 
         // Add to Fennel search path
         let current_fennel_path: String = fennel_module
@@ -267,7 +267,7 @@ fn run_script(
         );
         fennel_module
             .set("path", new_fennel_path)
-            .map_err(|e| miette!("Failed to set Fennel path: {}", e))?;
+            .map_err(|e| miette!("Failed to set Fennel path: {e}"))?;
     }
 
     lua.load(format!(
@@ -275,7 +275,7 @@ fn run_script(
         script
     ))
     .exec()
-    .map_err(|e| miette!("Failed to execute script: {}", e))?;
+    .map_err(|e| miette!("Failed to execute script: {e}"))?;
 
     Ok(())
 }
@@ -311,12 +311,12 @@ fn satisfy(status: &Status, assertion: &dyn AssertionType) -> Result<()> {
             print!("Upgrade? [y/N]: ");
             std::io::stdout()
                 .flush()
-                .map_err(|e| miette!("Failed to flush stdout: {}", e))?;
+                .map_err(|e| miette!("Failed to flush stdout: {e}"))?;
 
             let mut input = String::new();
             std::io::stdin()
                 .read_line(&mut input)
-                .map_err(|e| miette!("Failed to read input: {}", e))?;
+                .map_err(|e| miette!("Failed to read input: {e}"))?;
 
             match input.trim().to_lowercase().as_str() {
                 "y" | "yes" => {
diff --git a/frork-cli/src/utils.rs b/frork-cli/src/utils.rs
index 282aefe..2d88a38 100644
--- a/frork-cli/src/utils.rs
+++ b/frork-cli/src/utils.rs
@@ -1,4 +1,5 @@
-use miette::{Result, miette};
+use miette::Result;
+use miette::miette;
 use mlua::prelude::*;
 use regex::Regex;
 use std::env;
@@ -168,7 +169,7 @@ impl Utils {
 
         let output = command
             .output()
-            .map_err(|e| miette!("Failed to execute command '{}': {}", cmd, e))?;
+            .map_err(|e| miette!("Failed to execute command '{}': {e}", cmd))?;
 
         let stdout = String::from_utf8_lossy(&output.stdout).to_string();
         let status = output