use std::fs;
use std::path::Path;
fn main() {
let cli_path = Path::new("src").join("cli.rs");
println!("cargo:rerun-if-changed={}", cli_path.display());
println!("cargo:rerun-if-changed=Cargo.toml");
let src = fs::read_to_string(&cli_path).expect("src/cli.rs must exist");
let version = std::env::var("CARGO_PKG_VERSION").expect("CARGO_PKG_VERSION set by cargo");
let env_shape = r#"pub const CLI_VERSION: &str = env!("CARGO_PKG_VERSION");"#;
let literal_shape = format!(r#"pub const CLI_VERSION: &str = "{version}";"#);
if src.contains(env_shape) || src.contains(&literal_shape) {
return;
}
panic!(
"CLI_VERSION in src/cli.rs does not match Cargo.toml package.version ({version}).\n\
Update src/cli.rs to either:\n\
- `pub const CLI_VERSION: &str = env!(\"CARGO_PKG_VERSION\");` (preferred)\n\
- `pub const CLI_VERSION: &str = \"{version}\";` (literal)"
);
}