pub struct Git { /* private fields */ }
Expand description
Configuration for the VERGEN_GIT_*
instructions
Instructions
The following instructions can be generated:
Instruction | Default |
---|---|
cargo:rustc-env=VERGEN_GIT_BRANCH=feature/git2 | * |
cargo:rustc-env=VERGEN_GIT_COMMIT_COUNT=330 | |
cargo:rustc-env=VERGEN_GIT_COMMIT_DATE=2021-02-12 | |
cargo:rustc-env=VERGEN_GIT_COMMIT_TIME=01:54:15 | |
cargo:rustc-env=VERGEN_GIT_COMMIT_TIMESTAMP=2021-02-12T01:54:15.134750+00:00 | * |
cargo:rustc-env=VERGEN_GIT_SEMVER=v3.2.0-86-g95fc0f5d | * |
cargo:rustc-env=VERGEN_GIT_SEMVER_LIGHTWEIGHT=feature-test | |
cargo:rustc-env=VERGEN_GIT_SHA=95fc0f5d066710f16e0c23ce3239d6e040abca0d | * |
cargo:rustc-env=VERGEN_GIT_SHA_SHORT=95fc0f5 | |
cargo:rerun-if-changed=/Users/yoda/projects/rust-lang/vergen/.git/HEAD | * |
cargo:rerun-if-changed=/Users/yoda/projects/rust-lang/vergen/.git/refs/heads/feature/git2 | * |
- If the
branch
field is false, theVERGEN_GIT_BRANCH
instruction will not be generated. - If the
commit_count
field is false, theVERGEN_GIT_COMMIT_COUNT
instruction will not be generated. - If the
commit_timestamp
field is false, the date/time instructions will not be generated. - If the
rerun_on_head_changed
field is false, thecargo:rerun-if-changed
instructions will not be generated. - If the
semver
field is false, theVERGEN_GIT_SEMVER
instruction will not be generated. - If the
sha
field is false, theVERGEN_GIT_SHA
instruction will not be generated. - NOTE - The SHA defaults to the
Normal
variant, but can be changed via thesha_kind
field. - NOTE - The SemVer defaults to the
Normal
variant, but can be changed via thesemver_kind
field. - NOTE - The SemVer is only useful if you have tags on your repository. If your repository has no tags, this will default to
CARGO_PKG_VERSION
. - NOTE - You can add a
-dirty
flag to the SemVer output via thesemver_dirty
field. - NOTE - The
Lightweight
variant will only differ from theNormal
variant if you use lightweight tags in your repository. - NOTE - By default, the date/time related instructions will use
UTC
. - NOTE - The date/time instruction output is determined by the
kind
field and can be any combination of the three. - NOTE - If the
rerun_on_head_chaged
instructions are enabled, cargo will re-run the build script when either<gitpath>/HEAD
or the file that<gitpath>/HEAD
points at changes. - NOTE - Even if a project is developed in a git repository, the repository is not always
present with the source code, e.g. in a source tarball. By default,
vergen
returns an Error in this case. To keep processing other sections, setGit::skip_if_error
to true.
Example
use vergen::{vergen, Config};
use vergen::{ShaKind, SemverKind};
let mut config = Config::default();
// Change the SHA output to the short variant
*config.git_mut().sha_kind_mut() = ShaKind::Short;
// Change the SEMVER output to the lightweight variant
*config.git_mut().semver_kind_mut() = SemverKind::Lightweight;
// Add a `-dirty` flag to the SEMVER output
*config.git_mut().semver_dirty_mut() = Some("-dirty");
// Generate the instructions
vergen(config)?;
Implementations§
source§impl Git
impl Git
sourcepub fn enabled_mut(&mut self) -> &mut bool
pub fn enabled_mut(&mut self) -> &mut bool
Enable/Disable the git output
sourcepub fn base_dir_mut(&mut self) -> &mut Option<PathBuf>
pub fn base_dir_mut(&mut self) -> &mut Option<PathBuf>
Optional git base directory
sourcepub fn branch_mut(&mut self) -> &mut bool
pub fn branch_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_BRANCH
instruction
Enable/Disable the VERGEN_GIT_COMMIT_AUTHOR_NAME
, VERGEN_GIT_COMMIT_AUTHOR_EMAIL
sourcepub fn commit_count_mut(&mut self) -> &mut bool
pub fn commit_count_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_COMMIT_COUNT
sourcepub fn commit_message_mut(&mut self) -> &mut bool
pub fn commit_message_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_COMMIT_MESSAGE
sourcepub fn commit_timestamp_mut(&mut self) -> &mut bool
pub fn commit_timestamp_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_COMMIT_DATE
, VERGEN_GIT_COMMIT_TIME
, and VERGEN_GIT_COMMIT_TIMESTAMP
instructions
sourcepub fn commit_timestamp_timezone_mut(&mut self) -> &mut TimeZone
pub fn commit_timestamp_timezone_mut(&mut self) -> &mut TimeZone
The timezone to use for the date/time instructions.
sourcepub fn commit_timestamp_kind_mut(&mut self) -> &mut TimestampKind
pub fn commit_timestamp_kind_mut(&mut self) -> &mut TimestampKind
The kind of date/time instructions to output.
sourcepub fn rerun_on_head_change_mut(&mut self) -> &mut bool
pub fn rerun_on_head_change_mut(&mut self) -> &mut bool
Enable/Disable the cargo:rerun-if-changed
instructions
sourcepub fn semver_mut(&mut self) -> &mut bool
pub fn semver_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_SEMVER
instruction
sourcepub fn semver_kind_mut(&mut self) -> &mut SemverKind
pub fn semver_kind_mut(&mut self) -> &mut SemverKind
The kind of semver instruction to output.
sourcepub fn semver_dirty_mut(&mut self) -> &mut Option<&'static str>
pub fn semver_dirty_mut(&mut self) -> &mut Option<&'static str>
Enable/Disable the -dirty
flag on VERGEN_GIT_SEMVER*
output
sourcepub fn sha_kind_mut(&mut self) -> &mut ShaKind
pub fn sha_kind_mut(&mut self) -> &mut ShaKind
The kind of SHA instruction to output.
sourcepub fn skip_if_error_mut(&mut self) -> &mut bool
pub fn skip_if_error_mut(&mut self) -> &mut bool
Enable/Disable skipping Git
if an Error occurs.
Use option_env!
to read the generated environment variables.