use std::env;
use std::io::{self, Write};
use std::process::Command;
const SHORT_VERSION: &str = env!("CARGO_PKG_VERSION");
fn nuts_container_version() -> String {
let path = env::var("CARGO_MANIFEST_DIR").unwrap();
let out = Command::new("cargo")
.current_dir(path)
.arg("pkgid")
.arg("nuts-container")
.output()
.unwrap();
if !out.status.success() {
io::stderr().write_all(&out.stderr).unwrap();
panic!("failed to execute `cargo pkgid`");
}
let pkgid = String::from_utf8(out.stdout).unwrap();
let splitted = pkgid.rsplitn(2, '#').collect::<Vec<&str>>();
if splitted.len() != 2 {
panic!("invalid pkgid: {}", pkgid.trim())
}
splitted[0].trim().to_string()
}
fn main() {
let container_version = nuts_container_version();
let short_version = format!("{}", SHORT_VERSION);
let long_version = format!("{} (container: {})", SHORT_VERSION, container_version);
println!("cargo:rustc-env=NUTS_TOOL_SHORT_VERSION={}", short_version);
println!("cargo:rustc-env=NUTS_TOOL_LONG_VERSION={}", long_version);
}