mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-30 01:00:02 +00:00
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:
parent
90d47f76b1
commit
b854f3f52c
5 changed files with 77 additions and 19 deletions
|
@ -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)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue