use anyhow::Result; use std::{fs, path::PathBuf}; mod cargo; pub(crate) fn read(fname: PathBuf) -> Result { let version = read_fs(fname).unwrap_or(cargo::read().unwrap().unwrap()); Ok(version) } fn read_fs(fname: PathBuf) -> Result { log::debug!("reading version data from {:?}", fname); Ok(fs::read_to_string(fname)?.trim().into()) } #[cfg(test)] mod tests { #[test] fn read_version() { let version = super::read_fs("./testdata/VERSION".into()).unwrap(); assert_eq!(version, "0.1.0"); } }