neo4j 0.0.1

Bolt driver for Neo4j.
Documentation
use std::env;
use std::process::Command;

fn get_rustc_version() -> String {
    let rustc = env::var("RUSTC").unwrap();

    let rust_version = Command::new(&rustc)
        .arg("--version")
        .output()
        .expect("Failed to invoke `rustc --version`");

    if rust_version.status.code().unwrap_or(1) != 0 {
        panic!(
            "`{} --version` {}\n\n--- stdout\n{}\n--- stderr{}",
            &rustc,
            match rust_version.status.code() {
                Some(code) => format!("exited with status code {}", code),
                None => String::from("was killed killed by signal"),
            },
            String::from_utf8_lossy(rust_version.stdout.as_slice()),
            String::from_utf8_lossy(rust_version.stderr.as_slice())
        );
    }

    let output = String::from_utf8_lossy(rust_version.stdout.as_slice());
    output.trim_start_matches("rustc ").trim().into()
}

fn main() {
    let rustc_version = get_rustc_version();

    let user_agent = format!(
        "neo4j-rust-robsdedude/{} Rust/{} {}",
        env::var("CARGO_PKG_VERSION").unwrap(),
        rustc_version,
        env::var("TARGET").unwrap(),
    );

    println!("Setting default user agent to: {}", user_agent);

    println!("cargo:rustc-env=NEO4J_DEFAULT_USER_AGENT={}", user_agent);
}