minor parsing bug
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/tag Build is passing Details

This commit is contained in:
Cadey Ratio 2020-10-25 15:37:16 -04:00
parent 1a0bd1fcc8
commit 26999f5f2c
5 changed files with 24 additions and 7 deletions

View File

@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
## 0.7.1
Fix a minor parsing bug
## 0.7.0
Support reading version data from `Cargo.toml`

2
Cargo.lock generated
View File

@ -359,7 +359,7 @@ dependencies = [
[[package]]
name = "gitea-release"
version = "0.7.0"
version = "0.7.1"
dependencies = [
"anyhow",
"cargo_toml",

View File

@ -1,6 +1,6 @@
[package]
name = "gitea-release"
version = "0.7.0"
version = "0.7.1"
authors = ["Christine Dodrill <me@christine.website>"]
edition = "2018"

View File

@ -6,6 +6,7 @@ use std::io::Read;
fn get_file_as_byte_vec(filename: &str) -> Option<Vec<u8>> {
let f = File::open(&filename);
if f.is_err() {
log::debug!("can't read from Cargo.toml: {:?}", f.unwrap_err());
return None;
}
let mut f = f.unwrap();
@ -17,12 +18,25 @@ fn get_file_as_byte_vec(filename: &str) -> Option<Vec<u8>> {
}
pub fn read() -> Result<Option<String>> {
log::debug!("reading version from Cargo.toml");
let bytes = get_file_as_byte_vec("Cargo.toml");
log::debug!("{:?}", bytes);
match bytes {
Some(bytes) => {
let pkg: Manifest = toml::from_slice(&bytes)?;
Ok(Some(pkg.package.unwrap().version))
log::trace!("reading toml");
let pkg : Result<Manifest, _> = toml::from_slice(&bytes);
match pkg {
Err(why) => {
log::error!("error parsing Cargo.toml: {:?}", why);
Err(why.into())
}
Ok(pkg) => {
let version = pkg.package.unwrap().version;
log::trace!("got version {}", version);
Ok(Some(version))
}
}
}
None => Ok(None)
}

View File

@ -4,13 +4,12 @@ use std::{fs, path::PathBuf};
mod cargo;
pub(crate) fn read(fname: PathBuf) -> Result<String> {
let version = cargo::read()
.unwrap()
.unwrap_or(read_fs(fname)?);
let version = read_fs(fname).unwrap_or(cargo::read().unwrap().unwrap());
Ok(version)
}
fn read_fs(fname: PathBuf) -> Result<String> {
log::debug!("reading version data from {:?}", fname);
Ok(fs::read_to_string(fname)?.trim().into())
}