orodruin-cli 0.2.0

Toolbox-style Apple container wrapper / Linux podman wrapper for project development environments
Documentation
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const GIT_HASH: &str = env!("ORODRUIN_GIT_HASH");
pub const GIT_DATE: &str = env!("ORODRUIN_GIT_DATE");
pub const BUILD_PROFILE: &str = env!("ORODRUIN_BUILD_PROFILE");
pub const BUILD_TARGET: &str = env!("ORODRUIN_BUILD_TARGET");

pub const LONG_VERSION: &str = concat!(
    env!("CARGO_PKG_VERSION"),
    "\ncommit: ",
    env!("ORODRUIN_GIT_HASH"),
    "\ndate: ",
    env!("ORODRUIN_GIT_DATE"),
    "\nbuild: ",
    env!("ORODRUIN_BUILD_PROFILE"),
    " (",
    env!("ORODRUIN_BUILD_TARGET"),
    ")"
);

pub fn render() -> String {
    format!(
        "orodruin {VERSION}\ncommit: {GIT_HASH}\ndate: {GIT_DATE}\nbuild: {BUILD_PROFILE} ({BUILD_TARGET})"
    )
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn render_includes_all_version_fields() {
        let rendered = render();
        assert!(rendered.contains(VERSION));
        assert!(rendered.contains(GIT_HASH));
        assert!(rendered.contains(GIT_DATE));
        assert!(rendered.contains(BUILD_PROFILE));
        assert!(rendered.contains(BUILD_TARGET));
    }
}