use std::{env, process};
use clap::Parser;
use jimtcl::{Interp, JimResult, cli::Jimsh, tcl_error};
fn main() -> JimResult<process::ExitCode> {
let cli = Jimsh::parse();
let interp = Interp::new()?;
if cli.print_version {
println!("{}", interp.jim_version()?);
return Ok(process::ExitCode::SUCCESS);
}
cli.setup_env(&interp, env::args_os().next())?;
let rc = cli.run(&interp)?;
let rc = u8::try_from(rc).map_err(|e| tcl_error!("out-of-bounds exit code {}", e))?;
Ok(rc.into())
}