From 48228808bf7b6c2cbc45d303676054298d844bb0 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Sun, 25 Dec 2022 11:59:18 +0900 Subject: [PATCH] codegen: Reduce download more --- tools/codegen/src/main.rs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/tools/codegen/src/main.rs b/tools/codegen/src/main.rs index d849797e..d1419068 100644 --- a/tools/codegen/src/main.rs +++ b/tools/codegen/src/main.rs @@ -71,19 +71,27 @@ fn main() -> Result<()> { latest_only = true; } } + if manifest_path.is_file() { + match serde_json::from_slice(&fs::read(manifest_path)?) { + Ok(m) => manifests = m, + Err(e) => eprintln!("failed to load old manifest: {e}"), + } + } let version_req: Option = match args.get(1) { - _ if latest_only => Some(format!("={}", releases.first().unwrap().0).parse()?), + _ if latest_only => { + if !manifests.is_empty() + && manifests.first_key_value().unwrap().1.version + == releases.first().unwrap().0.parse()? + { + return Ok(()); + } + Some(format!("={}", releases.first().unwrap().0).parse()?) + } None => match base_info.version_range { Some(version_range) => Some(version_range.parse()?), None => Some(">= 0.0.1".parse()?), // HACK: ignore pre-releases }, Some(version_req) => { - if manifest_path.is_file() { - match serde_json::from_slice(&fs::read(manifest_path)?) { - Ok(m) => manifests = m, - Err(e) => eprintln!("failed to load old manifest: {e}"), - } - } for version in manifests.keys() { let Some(semver_version) = version.0.to_semver() else { continue;