use std::{env, process};
use bpaf::Parser;
use jimtcl::{
JimResult,
cli::{Jimsh, jimsh_args},
tcl_error,
};
fn main() -> JimResult<process::ExitCode> {
let script = jimsh_args()
.to_options()
.descr(
format!(
"jimsh version 0.{} (Rust wrapper {})",
jimtcl::JIM_VERSION,
env!("CARGO_PKG_VERSION"),
)
.as_str(),
)
.version(format!("0.{}", jimtcl::JIM_VERSION).as_str())
.run();
let argv0 = env::args_os().next();
let shell = Jimsh::create(argv0)?;
let rc = shell.run(&script)?;
let rc = u8::try_from(rc).map_err(|e| tcl_error!("out-of-bounds exit code {}", e))?;
Ok(rc.into())
}