repo: remove has_suite_variant helper

by exchanging loops in the check_suites function, which was the only
user. Exchanging loops also helps for introducing a type for Debian condenames.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
This commit is contained in:
Fabian Ebner 2021-07-29 14:25:51 +02:00 committed by Thomas Lamprecht
parent 13cdf8d1df
commit 51c69d76a5
2 changed files with 23 additions and 28 deletions

View File

@ -326,37 +326,39 @@ impl APTRepositoryFile {
None => bail!("unknown release {}", current_suite),
};
for (n, suite) in DEBIAN_SUITES.iter().enumerate() {
if repo.has_suite_variant(suite) {
for suite in repo.suites.iter() {
let base_suite = suite_variant(suite).0;
if base_suite == "stable" {
add_info(
"warning".to_string(),
"use the name of the stable distribution instead of 'stable'!".to_string(),
);
}
if let Some(n) = DEBIAN_SUITES.iter().position(|&suite| suite == base_suite) {
if n < current_index {
add_info(
"warning".to_string(),
format!("old suite '{}' configured!", suite),
format!("old suite '{}' configured!", base_suite),
);
}
if n == current_index + 1 {
add_info(
"ignore-pre-upgrade-warning".to_string(),
format!("suite '{}' should not be used in production!", suite),
format!("suite '{}' should not be used in production!", base_suite),
);
}
if n > current_index + 1 {
add_info(
"warning".to_string(),
format!("suite '{}' should not be used in production!", suite),
format!("suite '{}' should not be used in production!", base_suite),
);
}
}
}
if repo.has_suite_variant("stable") {
add_info(
"warning".to_string(),
"use the name of the stable distribution instead of 'stable'!".to_string(),
);
}
}
Ok(infos)
@ -390,3 +392,12 @@ impl APTRepositoryFile {
infos
}
}
/// Splits the suite into its base part and variant.
/// Does not expect the base part to contain either `-` or `/`.
fn suite_variant(suite: &str) -> (&str, &str) {
match suite.find(&['-', '/'][..]) {
Some(n) => (&suite[0..n], &suite[n..]),
None => (suite, ""),
}
}

View File

@ -293,13 +293,6 @@ impl APTRepository {
&& self.components.contains(&component)
}
/// Check if a variant of the given suite is configured in this repository
pub fn has_suite_variant(&self, base_suite: &str) -> bool {
self.suites
.iter()
.any(|suite| suite_variant(suite).0 == base_suite)
}
/// Guess the origin from the repository's URIs.
///
/// Intended to be used as a fallback for get_cached_origin.
@ -432,15 +425,6 @@ fn host_from_uri(uri: &str) -> Option<&str> {
Some(host)
}
/// Splits the suite into its base part and variant.
/// Does not expect the base part to contain either `-` or `/`.
fn suite_variant(suite: &str) -> (&str, &str) {
match suite.find(&['-', '/'][..]) {
Some(n) => (&suite[0..n], &suite[n..]),
None => (suite, ""),
}
}
/// Strips existing double quotes from the string first, and then adds double quotes at
/// the beginning and end if there is an ASCII whitespace in the `string`, which is not
/// escaped by `[]`.