tweaking errors
change xqkrttqmsxnukwvlllzxpnrunprtrwlk
commit ae525b412a3731ac152e50cc749706fd8be486bf
author Alpha Chen <alpha@kejadlen.dev>
date
parent kppsopqq
diff --git a/src/main.rs b/src/main.rs
index b3ea4cd..45b6743 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,6 +1,8 @@
 use clap::{Parser, Subcommand};
-use color_eyre::{Result, eyre};
-use eyre::WrapErr;
+use color_eyre::{
+    Result,
+    eyre::{WrapErr, eyre},
+};
 use mlua::prelude::*;
 use std::cell::RefCell;
 use std::collections::HashMap;
@@ -226,7 +228,7 @@ impl Frork {
         }
     }
 
-    fn ok(&self, args: LuaMultiValue) -> Result<()> {
+    fn check(&self, args: LuaMultiValue) -> Result<()> {
         if args.is_empty() {
             return Err(FrorkError::NoOperation.into());
         }
@@ -253,8 +255,8 @@ impl Frork {
         Ok(())
     }
 
-    fn register(&self, name: &str, table: LuaTable) -> Result<(), FrorkError> {
-        let status_fn: LuaFunction = table.get("status")?;
+    fn register(&self, name: &str, table: LuaTable) -> Result<()> {
+        let status_fn: LuaFunction = table.get("status").map_err(FrorkError::from)?;
 
         let name_clone = name.to_string();
         self.registry.borrow_mut().register(name, move |args| {
@@ -268,61 +270,71 @@ impl Frork {
         Ok(())
     }
 
-    fn bind(&self, lua: &Lua) -> LuaResult<LuaTable> {
-        let frork_table = lua.create_table()?;
+    fn lua_table(lua: &Lua) -> Result<LuaTable> {
+        let frork_table = lua.create_table().map_err(FrorkError::from)?;
         let frork = Rc::new(Self::new());
 
         let frork_clone = frork.clone();
-        let ok_fn = lua.create_function(move |_lua, args: LuaMultiValue| {
-            frork_clone
-                .ok(args)
-                .map_err(|e| LuaError::RuntimeError(e.to_string()))
-        })?;
+        let check_fn = lua
+            .create_function(move |_lua, args: LuaMultiValue| {
+                frork_clone
+                    .check(args)
+                    .map_err(|e| LuaError::RuntimeError(e.to_string()))
+            })
+            .map_err(FrorkError::from)?;
 
         let frork_clone = frork.clone();
-        let register_fn = lua.create_function(move |_lua, (name, table): (String, LuaTable)| {
-            frork_clone
-                .register(&name, table)
-                .map_err(|e| LuaError::RuntimeError(e.to_string()))
-        })?;
+        let register_fn = lua
+            .create_function(move |_lua, (name, table): (String, LuaTable)| {
+                frork_clone
+                    .register(&name, table)
+                    .map_err(|e| LuaError::RuntimeError(e.to_string()))
+            })
+            .map_err(FrorkError::from)?;
 
-        frork_table.set("ok", ok_fn)?;
-        frork_table.set("register", register_fn)?;
+        frork_table.set("ok", check_fn).map_err(FrorkError::from)?;
+        frork_table
+            .set("register", register_fn)
+            .map_err(FrorkError::from)?;
         Ok(frork_table)
     }
 }
 
-fn run(script_path: &str) -> Result<(), FrorkError> {
-    let lua = Lua::new();
-
-    let fennel_code = include_str!("../fennel-1.6.0.lua");
-    let fennel_module = lua.load(fennel_code).eval::<LuaValue>()?;
-    lua.register_module("fennel", fennel_module)?;
-
-    let frork = Frork::new();
-    let frork_module = frork.bind(&lua)?;
-    lua.register_module("frork", frork_module)?;
-
-    lua.load(format!(
-        r#"require("fennel").install().dofile("{}")"#,
-        script_path
-    ))
-    .exec()?;
-
+fn run(command: &Commands) -> color_eyre::Result<()> {
+    match command {
+        Commands::Check { script } => {
+            let lua = Lua::new();
+
+            let fennel_code = include_str!("../fennel-1.6.0.lua");
+            let fennel_module = lua
+                .load(fennel_code)
+                .eval::<LuaValue>()
+                .map_err(|e| eyre!("Failed to load Fennel: {}", e))?;
+            lua.register_module("fennel", fennel_module)
+                .map_err(|e| eyre!("Failed to register Fennel module: {}", e))?;
+
+            let frork_module = Frork::lua_table(&lua)
+                .map_err(|e| eyre!("Failed to create Frork module: {}", e))?;
+            lua.register_module("frork", frork_module)
+                .map_err(|e| eyre!("Failed to register Frork module: {}", e))?;
+
+            lua.load(format!(
+                r#"require("fennel").install().dofile("{}")"#,
+                script
+            ))
+            .exec()
+            .map_err(|e| eyre!("Failed to execute script: {}", e))?;
+        }
+    }
     Ok(())
 }
 
-fn main() -> color_eyre::Result<()> {
+fn main() -> Result<()> {
     color_eyre::install()?;
     tracing_subscriber::fmt::init();
 
     let cli = Cli::parse();
-
-    match &cli.command {
-        Commands::Check { script } => {
-            run(script).wrap_err("Failed to run script")?;
-        }
-    }
+    run(&cli.command).wrap_err("Failed to run command")?;
 
     Ok(())
 }