jimtcl 0.6.0-beta1

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