jimtcl 0.6.0-alpha1

Embed Jim Tcl in Rust.
Documentation
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())
}