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();
}