diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fa002d..7e8a4e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,17 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Changed - -- `add-master-log` now always create CSV file -- `convert-master-log` can still append to a CSV file - -## [2.0.1] - -### Fix - -- version in Cargo.toml - ## [2.0.0] ### Added @@ -54,9 +43,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Subcommand `add-master-log` to parse master log for shiftwork 0.1.0 and write out to CSV. - Subcommand `check-db` to validate the database CSV file. -[Unreleased]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/compare/v1.0.1...main -[2.0.1]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/compare/v2.0.0...v2.0.1 -[2.0.0]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/compare/v1.1.0...v2.0.0 -[1.1.0]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/compare/v1.0.1...v1.1.0 -[1.0.1]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/compare/v1.0.0...v1.0.1 +[Unreleased]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/compare/main...v1.0.1 +[2.0.0]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/compare/v2.0.0...v1.1.0 +[1.1.0]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/compare/v1.1.0...v1.0.1 +[1.0.1]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/compare/v1.0.1...v1.0.0 [1.0.0]: https://gitlab.cern.ch/wotsubo/psboard-qaqc-postprocess/-/tags/v1.0.0 diff --git a/Cargo.lock b/Cargo.lock index 17eb944..e11698d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -730,7 +730,7 @@ dependencies = [ [[package]] name = "psb-qaqc" -version = "2.0.1" +version = "1.1.0" dependencies = [ "anyhow", "assert_cmd", diff --git a/Cargo.toml b/Cargo.toml index 3d49cf1..4e924c9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "psb-qaqc" -version = "2.0.1" +version = "1.1.0" edition = "2021" [dependencies] diff --git a/src/main.rs b/src/main.rs index 7c3d4e9..bceb1c6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,7 +4,7 @@ use std::{ fmt::Display, fs::{self, File}, io::{self, BufRead, BufReader}, - path::{self, PathBuf}, + path::{self, Path, PathBuf}, str::FromStr, }; @@ -351,12 +351,11 @@ impl PsbQaqcResult { // .collect_vec() // } -/// If `nonewfile` is `true`, out file is not created when there is already a file. -fn write_psbqaqc_csv(result: MasterLogResult, outfile: PathBuf, nonewfile: bool) -> Result<()> { +fn write_psbqaqc_csv(result: MasterLogResult, outfile: PathBuf) -> Result<()> { let expanded_results = PsbQaqcResult::from_masterlogresult(result); - let mut wtr = match (outfile.exists(), nonewfile) { - (true, false) => { + let mut wtr = match outfile.exists() { + true => { let file = File::options() .read(true) .append(true) @@ -365,7 +364,7 @@ fn write_psbqaqc_csv(result: MasterLogResult, outfile: PathBuf, nonewfile: bool) .has_headers(false) .from_writer(file) } - (false, _) => { + false => { println!("Creating new file: {}", outfile.display()); let file = File::options() .create_new(true) @@ -375,10 +374,6 @@ fn write_psbqaqc_csv(result: MasterLogResult, outfile: PathBuf, nonewfile: bool) .has_headers(true) .from_writer(file) } - (true, true) => { - error!("Out file already exists but specified not to make new file"); - return Err(anyhow!("Out file already exists")); - } }; for result in expanded_results { wtr.serialize(result)?; @@ -414,7 +409,7 @@ fn main() -> Result<()> { let outfile = outfile.unwrap_or(get_output_filename(&result)); - write_psbqaqc_csv(result, outfile.clone(), true)?; + write_psbqaqc_csv(result, outfile.clone())?; println!("Add comments about errors in the last column of the CSV file"); println!("Press any key to start editting..."); @@ -433,17 +428,14 @@ fn main() -> Result<()> { editor } (None, Err(e1), Err(e2)) => { - warn!("No VISUAL nor EDITOR found, {}, {}", e1, e2); - warn!("Using `nano` as a fallback editor"); + info!("No VISUAL nor EDITOR found, {}, {}", e1, e2); "nano".to_string() } }; std::process::Command::new(editor) .arg(outfile.clone()) - .spawn() - .context("Error during spawning editor")? - .wait() - .context("Error while waiting editor")?; + .spawn()? + .wait()?; { let f = File::open(outfile.clone())?; @@ -452,7 +444,7 @@ fn main() -> Result<()> { } println!(); println!("Copy the CSV above and paste it to the database(Google sheets)"); - println!("Choose `Data->Split text to columns` to format it"); + println!("Choose Data->Split text to columns to format it"); println!("Press any key when upload finished..."); terminal::enable_raw_mode()?; @@ -491,7 +483,7 @@ fn main() -> Result<()> { let outfile = outfile.unwrap_or(get_output_filename(&result)); - write_psbqaqc_csv(result, outfile, false)?; + write_psbqaqc_csv(result, outfile)?; } Commands::CheckDB { csvfile } => { // TODO: more friendly message (like row number)