cargo_gitv/
verify.rs

1use anyhow::Result;
2use semver::{Version, VersionReq};
3
4use crate::build_context::BuildContext;
5use anyhow::anyhow;
6
7pub fn verify(build_context: &BuildContext) -> Result<()> {
8    let workspace_version = build_context.dev_version()?;
9    let base_version = Version::new(
10        workspace_version.major,
11        workspace_version.minor,
12        workspace_version.patch,
13    );
14    let req = VersionReq::parse(&build_context.cargo_version.to_string()).unwrap();
15
16    if req.matches(&base_version) {
17        Ok(())
18    } else {
19        Err(anyhow!(
20            "Cargo version ${} does not match computed version {}!",
21            build_context.cargo_version,
22            build_context.dev_version()?
23        ))
24    }
25}