mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-21 13:08:42 +00:00
Fix creating .cargo/.crates.toml
in metadata::v1
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
28aeae938e
commit
71566383db
1 changed files with 34 additions and 1 deletions
|
@ -74,7 +74,11 @@ impl CratesToml {
|
||||||
Iter: IntoIterator<Item = &'a MetaData>,
|
Iter: IntoIterator<Item = &'a MetaData>,
|
||||||
{
|
{
|
||||||
let mut file = FileLock::new_exclusive(create_if_not_exist(path.as_ref())?)?;
|
let mut file = FileLock::new_exclusive(create_if_not_exist(path.as_ref())?)?;
|
||||||
let mut c1 = Self::load_from_reader(&mut *file)?;
|
let mut c1 = if file.metadata()?.len() != 0 {
|
||||||
|
Self::load_from_reader(&mut *file)?
|
||||||
|
} else {
|
||||||
|
Self::default()
|
||||||
|
};
|
||||||
|
|
||||||
for metadata in iter {
|
for metadata in iter {
|
||||||
c1.insert(&CrateVersionSource::from(metadata), metadata.bins.clone());
|
c1.insert(&CrateVersionSource::from(metadata), metadata.bins.clone());
|
||||||
|
@ -108,3 +112,32 @@ pub enum CratesTomlParseError {
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
CvsParse(#[from] super::CvsParseError),
|
CvsParse(#[from] super::CvsParseError),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::{super::binstall_v1, *};
|
||||||
|
use crate::target::TARGET;
|
||||||
|
|
||||||
|
use semver::Version;
|
||||||
|
use tempfile::TempDir;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_empty() {
|
||||||
|
let tempdir = TempDir::new().unwrap();
|
||||||
|
let path = tempdir.path().join("crates-v1.toml");
|
||||||
|
|
||||||
|
CratesToml::append_to_path(
|
||||||
|
&path,
|
||||||
|
&[MetaData {
|
||||||
|
name: "cargo-binstall".into(),
|
||||||
|
version_req: "*".into(),
|
||||||
|
current_version: Version::new(0, 11, 1),
|
||||||
|
source: binstall_v1::Source::cratesio_registry(),
|
||||||
|
target: TARGET.into(),
|
||||||
|
bins: vec!["cargo-binstall".into()],
|
||||||
|
other: Default::default(),
|
||||||
|
}],
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue