Refactor: Extract Crates2Json::append{_to_path}

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2022-07-21 19:58:23 +10:00
parent 0157a594e6
commit 1e725a9ffe
No known key found for this signature in database
GPG key ID: 591C0B03040416D6
2 changed files with 28 additions and 16 deletions

View file

@ -112,22 +112,18 @@ async fn install_from_package(
debug!("Writing .crates.toml"); debug!("Writing .crates.toml");
metafiles::v1::CratesToml::append(cvs.clone(), bins.clone())?; metafiles::v1::CratesToml::append(cvs.clone(), bins.clone())?;
{ debug!("Writing .crates2.json");
debug!("Writing .crates2.json"); metafiles::v2::Crates2Json::append(
let mut c2 = metafiles::v2::Crates2Json::load().unwrap_or_default(); cvs,
c2.insert( metafiles::v2::CrateInfo {
cvs, version_req: Some(version),
metafiles::v2::CrateInfo { bins,
version_req: Some(version), profile: "release".into(),
bins, target: fetcher.target().to_string(),
profile: "release".into(), rustc: format!("{} {}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")),
target: fetcher.target().to_string(), ..Default::default()
rustc: format!("{} {}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")), },
..Default::default() )?;
},
);
c2.write()?;
}
Ok(()) Ok(())
}) })

View file

@ -63,6 +63,22 @@ impl Crates2Json {
fs::write(path, &serde_json::to_vec(&self)?)?; fs::write(path, &serde_json::to_vec(&self)?)?;
Ok(()) Ok(())
} }
pub fn append_to_path(
path: impl AsRef<Path>,
cvs: CrateVersionSource,
info: CrateInfo,
) -> Result<(), Crates2JsonParseError> {
let mut c2 = Self::load_from_path(path.as_ref()).unwrap_or_default();
c2.insert(cvs, info);
c2.write_to_path(path.as_ref())?;
Ok(())
}
pub fn append(cvs: CrateVersionSource, info: CrateInfo) -> Result<(), Crates2JsonParseError> {
Self::append_to_path(Self::default_path()?, cvs, info)
}
} }
#[derive(Debug, Diagnostic, Error)] #[derive(Debug, Diagnostic, Error)]