feature: Merge disable strategies (#1868)

* feat: Merge --disable-strategies with ones in cargo manifest

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Update doc

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Update e2e-test-strategies

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Fix typo in option doc in crates/bin/src/args.rs

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

---------

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>
This commit is contained in:
Jiahao XU 2024-08-08 00:04:00 +10:00 committed by GitHub
parent 90d47f76b1
commit b854f3f52c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 77 additions and 19 deletions

View file

@ -101,6 +101,11 @@ impl PkgMeta {
where
It: IntoIterator<Item = &'a PkgOverride> + Clone,
{
let ignore_disabled_strategies = pkg_overrides
.clone()
.into_iter()
.any(|pkg_override| pkg_override.ignore_disabled_strategies);
Self {
pkg_url: pkg_overrides
.clone()
@ -126,10 +131,22 @@ impl PkgMeta {
.find_map(|pkg_override| pkg_override.signing.clone())
.or_else(|| self.signing.clone()),
disabled_strategies: pkg_overrides
.into_iter()
.find_map(|pkg_override| pkg_override.disabled_strategies.clone())
.or_else(|| self.disabled_strategies.clone()),
disabled_strategies: if ignore_disabled_strategies {
None
} else {
let mut disabled_strategies = pkg_overrides
.into_iter()
.filter_map(|pkg_override| pkg_override.disabled_strategies.as_deref())
.flatten()
.chain(self.disabled_strategies.as_deref().into_iter().flatten())
.copied()
.collect::<Vec<Strategy>>();
disabled_strategies.sort_unstable();
disabled_strategies.dedup();
Some(disabled_strategies.into_boxed_slice())
},
overrides: Default::default(),
}
@ -156,6 +173,9 @@ pub struct PkgOverride {
/// Package signing configuration
pub signing: Option<PkgSigning>,
#[serde(skip)]
pub ignore_disabled_strategies: bool,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]