type Error = Error;
fn try_from(value: ReleaseFileRaw) -> Result<Self, Self::Error> {
- let mut parsed = ReleaseFile::default();
-
- parsed.architectures = whitespace_split_to_vec(
- &value
- .architectures
- .ok_or_else(|| format_err!("'Architectures' field missing."))?,
- );
- parsed.components = whitespace_split_to_vec(
- &value
- .components
- .ok_or_else(|| format_err!("'Components' field missing."))?,
- );
-
- parsed.changelogs = value.changelogs;
- parsed.codename = value.codename;
-
- parsed.date = value.date.as_deref().map(parse_date);
- parsed.valid_until = value
- .extra_fields
- .get("Valid-Until")
- .map(|val| parse_date(&val.to_string()));
-
- parsed.description = value.description;
- parsed.label = value.label;
- parsed.origin = value.origin;
- parsed.suite = value.suite;
- parsed.version = value.version;
-
- parsed.aquire_by_hash = match value.extra_fields.get("Acquire-By-Hash") {
- Some(val) => *val == "yes",
- None => false,
+ let mut parsed = ReleaseFile {
+ architectures: whitespace_split_to_vec(
+ &value
+ .architectures
+ .ok_or_else(|| format_err!("'Architectures' field missing."))?,
+ ),
+ components: whitespace_split_to_vec(
+ &value
+ .components
+ .ok_or_else(|| format_err!("'Components' field missing."))?,
+ ),
+ changelogs: value.changelogs,
+ codename: value.codename,
+ date: value.date.as_deref().map(parse_date),
+ valid_until: value
+ .extra_fields
+ .get("Valid-Until")
+ .map(|val| parse_date(&val.to_string())),
+ description: value.description,
+ label: value.label,
+ origin: value.origin,
+ suite: value.suite,
+ files: HashMap::new(),
+ aquire_by_hash: false,
+ version: value.version,
};
+ if let Some(val) = value.extra_fields.get("Acquire-By-Hash") {
+ parsed.aquire_by_hash = *val == "yes";
+ }
// Fixup bullseye-security release files which have invalid components
if parsed.label.as_deref() == Some("Debian-Security")
&& parsed.codename.as_deref() == Some("bullseye-security")
parsed.files =
references_map
.into_iter()
- .fold(HashMap::new(), |mut map, (base, inner_map)| {
+ .fold(parsed.files, |mut map, (base, inner_map)| {
map.insert(base, inner_map.into_values().collect());
map
});
break;
}
Ok(_) => {
- if (&lines[old_length..])
+ if (lines[old_length..])
.trim_matches(|c| char::is_ascii_whitespace(&c))
.is_empty()
{
use crate::repositories::standard::APTRepositoryHandle;
#[api]
-#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq)]
+#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum APTRepositoryFileType {
/// One-line-style format
}
#[api]
-#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq)]
+#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "kebab-case")]
pub enum APTRepositoryPackageType {
/// Debian package
},
},
)]
-#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
+#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "kebab-case")]
/// Reference to a standard repository and configuration status.
pub struct APTStandardRepository {
}
#[api]
-#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq)]
+#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "kebab-case")]
/// Handles for Proxmox repositories.
pub enum APTRepositoryHandle {
file.parse()?;
let new_path = write_dir.join(path.file_name().unwrap());
- file.path = Some(new_path.clone().into_os_string().into_string().unwrap());
+ file.path = Some(new_path.into_os_string().into_string().unwrap());
file.digest = None;
let mut file = APTRepositoryFile::new(&absolute_suite_list)?.unwrap();
file.parse()?;
- let infos = check_repositories(&vec![file], DebianCodename::Bullseye);
+ let infos = check_repositories(&[file], DebianCodename::Bullseye);
- assert_eq!(infos.is_empty(), true);
+ assert!(infos.is_empty());
let pve_list = read_dir.join("pve.list");
let mut file = APTRepositoryFile::new(&pve_list)?.unwrap();
file.parse()?;
];
let mut expected_infos = vec![];
- for n in 0..=5 {
+ for (n, origin) in origins.into_iter().enumerate() {
expected_infos.push(APTRepositoryInfo {
path: path_string.clone(),
index: n,
property: None,
kind: "origin".to_string(),
- message: origins[n].to_string(),
+ message: origin.to_string(),
});
}
expected_infos.sort();
- let mut infos = check_repositories(&vec![file], DebianCodename::Bullseye);
+ let mut infos = check_repositories(&[file], DebianCodename::Bullseye);
infos.sort();
assert_eq!(infos, expected_infos);
}
expected_infos.sort();
- let mut infos = check_repositories(&vec![file], DebianCodename::Bullseye);
+ let mut infos = check_repositories(&[file], DebianCodename::Bullseye);
infos.sort();
assert_eq!(infos, expected_infos);
}
expected_infos.sort();
- let mut infos = check_repositories(&vec![file], DebianCodename::Bullseye);
+ let mut infos = check_repositories(&[file], DebianCodename::Bullseye);
infos.sort();
assert_eq!(infos, expected_infos);
let mut file = APTRepositoryFile::new(&absolute_suite_list)?.unwrap();
file.parse()?;
- let std_repos = standard_repositories(&vec![file], "pve", DebianCodename::Bullseye);
+ let std_repos = standard_repositories(&[file], "pve", DebianCodename::Bullseye);
assert_eq!(std_repos, expected);