diff --git a/mers/src/lang/code_runnable.rs b/mers/src/lang/code_runnable.rs index ca35142..5785567 100755 --- a/mers/src/lang/code_runnable.rs +++ b/mers/src/lang/code_runnable.rs @@ -433,7 +433,9 @@ impl RScript { Ok(Self { main, info }) } pub fn run(&self, args: Vec) -> VData { - self.main.inputs[0].lock().unwrap().0 = VDataEnum::List(VSingleType::Any.into(), args).to(); + for (input, arg) in self.main.inputs.iter().zip(args.into_iter()) { + input.lock().unwrap().0 = arg; + } self.main.run(&self.info) } } diff --git a/mers/src/main.rs b/mers/src/main.rs index 08598e1..9273e36 100755 --- a/mers/src/main.rs +++ b/mers/src/main.rs @@ -192,17 +192,19 @@ fn normal_main() { }; info.main_fn_args = vec![( "args".to_string(), - VSingleType::List(VSingleType::Any.into()).to(), + VSingleType::List(VSingleType::String.into()).to(), )]; match parsing::parse::parse_custom_info(&mut file, info) { Ok(script) => { if run { - script.run( + script.run(vec![VDataEnum::List( + VSingleType::String.to(), std::env::args() .skip(args_to_skip) .map(|v| VDataEnum::String(v).to()) .collect(), - ); + ) + .to()]); } } Err(e) => {