mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-21 04:58: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>,
|
||||
{
|
||||
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 {
|
||||
c1.insert(&CrateVersionSource::from(metadata), metadata.bins.clone());
|
||||
|
@ -108,3 +112,32 @@ pub enum CratesTomlParseError {
|
|||
#[error(transparent)]
|
||||
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