versionisator 1.0.2

Tool for build.rs script to display handy version information

Versionator: version information for build script

Crates.io

Documentation

Usage

First, add this to your Cargo.toml:

[dependencies]
versionisator = "1.0"

Next, add this to your build script (build.rs):

extern crate versionisator;

fn main() {
    let version = versionisator::Version::new(
        env!("CARGO_MANIFEST_DIR"),
        env!("CARGO_PKG_NAME").to_string(),
        env!("CARGO_PKG_VERSION").to_string()
    );

    println!("cargo:rustc-env=FULL_VERSION={}", version.full());
    println!("cargo:rustc-env=SIMPLE_VERSION={}", version.simple());
    println!("cargo:rustc-env=SOURCE_VERSION={}", version.hash());
}

FULL_VERSION will give you:

versionator 1.0.0 (master-3326b9b+, debug, mac [x86_64]) - [rustc 1.37.0 (eae3437df 2019-08-13)]
\_________/ \___/  \____/ \_____/|  \___/  \_/  \____/      \_________________________________/
 |           |      |      |     |   |      |      |           |
 |           |      |      |     |   |      |      |           +- rustc --version
 |           |      |      |     |   |      |      +- std::env::consts::ARCH
 |           |      |      |     |   |      +- std::env::consts::OS
 |           |      |      |     |   +- Checks debug_assertions
 |           |      |      |     +- Adds a "+" if the working tree is not clean
 |           |      |      +- Commit hash
 |           |      +- Current branch name
 |           +- Package version from Cargo.toml
 +- Package name from Cargo.toml

Credits

This package is inspired from input-output-hk/jormungandr/719 itself inspired from https://vallentin.io/2019/06/06/versioning which served as guide for the idea and the code.

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in bawawa by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.