shadow-formatted-version
Convenience crate to provide detailed version information in a preformatted block:
Version: 0.1.0
Target: x86_64-unknown-linux-gnu
Commit: 8f29a49b54ca3e94070d244511d8e4a64a69f083
Commit-Date: 2023-12-31 23:59:59 +00:00
Build-Date: 2024-12-31 23:59:59 +00:00
Build-Clean: No uncommitted changes in build.
Rust-Version: rustc 1.76.0 (07dca489a 2024-02-04)
This version information can be logged at the start of a long-running service or
printed when passing --version
to a CLI.
For example, when using clap
, you can use it like so:
Setup
This crate is based on shadow-rs, which we will setup as well.
- Add
shadow-rs
andshadow-formatted-version
to your dependencies:
[]
= "1"
= "1.1"
[]
= "1"
- Add the following code to your
build.rs
file:
If you don't yet have a build.rs
file, place it next to your Cargo.toml
file:
.
├── build.rs
├── Cargo.toml
└── src
└── ...
- Place these two lines in your
main.rs
orlib.rs
, underneath your module definitions:
!
from_shadow!;
shadow
Then you can retrieve the formatted version information with crate::FORMATTED_VERSION
.
You can also retrieve additional constants from crate::build
, as generated by shadow-rs
.