litorg 0.2.2

Literate programming in org-mode.
Documentation
use litorg::*;
use std::collections::HashSet;
#[macro_use]
extern crate clap;
use std::path::Path;
use std::sync::Arc;

fn main() {
    env_logger::init();
    let matches = clap::App::new("Org")
        .author(crate_authors!())
        .version(crate_version!())
        .arg(
            clap::Arg::with_name("input")
                .value_name("FILE")
                .about("Input org file")
                .takes_value(true)
                .required(true),
        )
        .arg(
            clap::Arg::with_name("no-syntax")
                .long("no-syntax-coloring")
                .about("Disable syntax coloring"),
        )
        .get_matches();

    let mut parser = Parser::new();
    parser
        .parse(matches.value_of("input").unwrap(), |_| ())
        .unwrap();

    let parsed = Arc::new(parser.finish());
    let parsed_ = parsed.clone();
    tangle(&parsed_, &mut HashSet::new(), &parser.tangle_sources).unwrap();

    let mut out = Path::new(matches.value_of("input").unwrap()).to_path_buf();
    out.set_extension("html");
    let mut f = std::io::BufWriter::new(std::fs::File::create(&out).unwrap());
    html_output(&parsed, !matches.is_present("no-syntax"), &mut f).unwrap();
}