use std::{env, mem, os::unix::ffi::OsStrExt, path::Path, process};
use clap::Parser;
use jimtcl::{Interp, JimResult, cli::Jimsh};
fn main() -> JimResult<()> {
let cli = Jimsh::parse();
let interp = Interp::new()?;
if cli.print_version {
println!("{}", interp.jim_version()?);
return Ok(());
}
if let Some(argv0) = env::args_os().next() {
interp.set_variable("jim::argv0", argv0.as_bytes())?;
let path = Path::new(&argv0).canonicalize()?;
interp.set_variable("jim::exe", path.as_os_str().as_bytes())?;
}
cli.setup_env(&interp)?;
let rc = cli.run(&interp)?;
mem::drop(interp);
process::exit(rc);
}