archive
/
md-pdf-rs
Archived
1
Fork 0
This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
md-pdf-rs/src/main.rs

57 lines
1.1 KiB
Rust

#[macro_use]
extern crate clap;
#[macro_use]
extern crate serde_derive;
extern crate serde_yaml;
extern crate pandoc;
use std::io::{self, Write};
use std::process::exit;
mod args;
mod config;
mod process;
mod input;
mod utils;
mod build;
#[cfg(test)]
mod tests;
use clap::ArgMatches;
use config::Config;
fn ok_or_exit<T>(res: Result<T, String>) -> T {
return match res {
Ok(k) => k,
Err(err) => {
writeln!(io::stderr(), "Error: {:?}", err).unwrap();
exit(1);
}
};
}
fn get_config(args: ArgMatches) -> Config {
let mut config = ok_or_exit(config::get_config());
config.verbosity = args::get_verbose(args);
return config;
}
fn main() {
let args = args::get_matches();
let subcommand = args.subcommand_name().expect("subcommand error");
match subcommand {
"build" => {
let config = get_config(args.clone());
ok_or_exit(process::build(config));
}
cmd => {
writeln!(io::stderr(), "Unknown command {}.", cmd).unwrap();
exit(1);
}
}
}