gluon_doc 0.18.4

The documentation generator for the gluon programming language
Documentation
extern crate env_logger;
extern crate opener;
extern crate rayon;

extern crate gluon;
extern crate gluon_doc;

use std::path::Path;

use clap::Parser;

fn main() {
    if let Err(err) = main_() {
        eprintln!("{}", err);
    }
}

fn main_() -> Result<(), anyhow::Error> {
    env_logger::init();

    let opt = gluon_doc::Opt::parse();

    if let Some(jobs) = opt.jobs {
        rayon::ThreadPoolBuilder::new()
            .num_threads(jobs)
            .build_global()?;
    }

    gluon_doc::generate(&gluon_doc::Options::from(&opt), &gluon::new_vm())?;

    if opt.open {
        let path = Path::new(&opt.output)
            .join(&opt.input)
            .with_extension("html");
        eprintln!("Opening {}", path.display());
        opener::open(path)?;
    }

    Ok(())
}