yaml 0.0.12

LibYAML binding for Rust
#![feature(core)]
#![feature(io)]
#![feature(env)]
#![feature(path)]

use std::old_io::{Command, File, Truncate, Write};
use std::path;
use std::env;

fn main()
{
    let dir_var = env::var("OUT_DIR").unwrap();
    let dir = path::Path::new(&dir_var);
    let out_file = dir.join("codegen");
    Command::new("gcc").arg("src/codegen/type_size.c")
                       .arg("-o")
                       .arg(out_file.to_str().unwrap())
                       .status()
                       .unwrap();
    let code = Command::new(out_file.to_str().unwrap()).output().unwrap();
    if !code.status.success() {
        panic!("{}", String::from_utf8_lossy(code.error.as_slice()));
    }
    let mut f = File::open_mode(&Path::new("src/type_size.rs"), Truncate, Write);
    f.write_all(code.output.as_slice()).unwrap();
}