distinst 0.3.2

Distribution Installer Backend
extern crate cbindgen;

use std::env;
use std::fs;
use std::io::Write;
use std::path::PathBuf;

fn generate_dylib_bindings() {
    let target_path = PathBuf::from("target");

    let pkg_config = format!(
        include_str!("distinst.pc.in"),
        name = env::var("CARGO_PKG_NAME").unwrap(),
        description = env::var("CARGO_PKG_DESCRIPTION").unwrap(),
        version = env::var("CARGO_PKG_VERSION").unwrap()
    );

    fs::create_dir_all(target_path.join("pkgconfig")).unwrap();
    fs::File::create(target_path.join("pkgconfig").join("distinst.pc.stub"))
        .unwrap()
        .write_all(&pkg_config.as_bytes())
        .unwrap();

    let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap();

    cbindgen::generate(crate_dir)
        .expect("unable to generate bindings")
        .write_to_file(target_path.join("include").join("distinst.h"));
}

fn main() {
    // NOTE: Comment this out when developing.
    generate_dylib_bindings();
}