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(())
}