tweetust 0.10.0

The Twitter API wrapper
Documentation
extern crate inflector;
#[macro_use] extern crate log;
#[macro_use] #[no_link]
extern crate matches;
#[macro_use] extern crate nom;

#[path = "src/clientgen/mod.rs"]
mod clientgen;

use std::ffi::OsString;
use std::fs;
use std::path::Path;

fn main() {
    let out_dir = std::env::var_os("OUT_DIR").unwrap();
    clients(&out_dir);
}

fn clients(out_dir: &OsString) {
    struct WarningLogger;
    impl log::Log for WarningLogger {
        fn enabled(&self, metadata: &log::LogMetadata) -> bool {
            metadata.level() <= log::LogLevel::Warn
        }

        fn log(&self, record: &log::LogRecord) {
            if self.enabled(record.metadata()) {
                println!("cargo:warning={}", record.args());
            }
        }
    }

    log::set_logger(|max_log_level| {
        max_log_level.set(log::LogLevelFilter::Warn);
        Box::new(WarningLogger)
    }).unwrap();

    let mut dst_file = fs::File::create(Path::new(out_dir).join("clients.rs")).unwrap();
    clientgen::generate_clients(&mut dst_file, "./CoreTweet/ApiTemplates", "./api_templates_override").unwrap();
}