run lua
change kuznmtusrxoukllyyrmwswysspwovvrz
commit ddaf234f394acbc8b941c61294123a53bedfb92e
author Alpha Chen <alpha@kejadlen.dev>
date
parent ynmsxntt
diff --git a/src/main.rs b/src/main.rs
index ccc9e0b..9ca3d16 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,18 +1,28 @@
 use mlua::prelude::*;
+use std::env;
+use std::fs;
+use std::process;
 
 fn main() -> LuaResult<()> {
+    let args: Vec<String> = env::args().collect();
+
+    if args.len() != 2 {
+        eprintln!("Usage: {} <script.lua>", args[0]);
+        process::exit(1);
+    }
+
+    let filename = &args[1];
+    let script_content = fs::read_to_string(filename).unwrap_or_else(|err| {
+        eprintln!("Error reading file '{}': {}", filename, err);
+        process::exit(1);
+    });
+
     let lua = Lua::new();
 
     let fennel_code = include_str!("../fennel-1.6.0.lua");
     lua.load(fennel_code).exec()?;
 
-    let map_table = lua.create_table()?;
-    map_table.set(1, "one")?;
-    map_table.set("two", 2)?;
-
-    lua.globals().set("map_table", map_table)?;
-
-    lua.load("for k,v in pairs(map_table) do print(k,v) end").exec()?;
+    lua.load(&script_content).exec()?;
 
     Ok(())
 }