mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-06-15 15:16:37 +00:00
Add new option --disable-quick-install-stats
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
6df132a9d5
commit
a908d3a6dd
6 changed files with 33 additions and 3 deletions
|
@ -219,6 +219,14 @@ pub struct Args {
|
|||
#[clap(help_heading = "Options", long)]
|
||||
pub(crate) no_track: bool,
|
||||
|
||||
/// Disable statistics collection on popular crates.
|
||||
///
|
||||
/// Strategy quick-install (can be disabled via --disable-strategies) collects
|
||||
/// statistics of popular crates by default, by sending the crate, version and
|
||||
/// target to https://warehouse-clerk-tmp.vercel.app/api/crate
|
||||
#[clap(help_heading = "Options", long)]
|
||||
pub(crate) disable_quick_install_stats: bool,
|
||||
|
||||
/// Install binaries in a custom location.
|
||||
///
|
||||
/// By default, binaries are installed to the global location `$CARGO_HOME/bin`, and global
|
||||
|
@ -611,5 +619,21 @@ mod test {
|
|||
Args::command().debug_assert()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn quickinstall_url_matches() {
|
||||
let long_help = Args::command()
|
||||
.get_opts()
|
||||
.find(|opt| opt.get_long() == Some("disable-quick-install-stats"))
|
||||
.unwrap()
|
||||
.get_long_help()
|
||||
.unwrap()
|
||||
.to_string();
|
||||
assert!(
|
||||
long_help.ends_with(binstalk::QUICK_INSTALL_STATS_URL),
|
||||
"{}",
|
||||
long_help
|
||||
);
|
||||
}
|
||||
|
||||
const _: () = assert!(Strategy::VARIANTS.len() == StrategyWrapped::VARIANTS.len());
|
||||
}
|
||||
|
|
|
@ -207,6 +207,7 @@ pub fn install_crates(
|
|||
} else {
|
||||
SignaturePolicy::IfPresent
|
||||
},
|
||||
disable_quick_install_stats: args.disable_quick_install_stats,
|
||||
});
|
||||
|
||||
// Destruct args before any async function to reduce size of the future
|
||||
|
|
|
@ -16,7 +16,7 @@ use crate::{
|
|||
};
|
||||
|
||||
const BASE_URL: &str = "https://github.com/cargo-bins/cargo-quickinstall/releases/download";
|
||||
const STATS_URL: &str = "https://warehouse-clerk-tmp.vercel.app/api/crate";
|
||||
pub const QUICK_INSTALL_STATS_URL: &str = "https://warehouse-clerk-tmp.vercel.app/api/crate";
|
||||
|
||||
const QUICKINSTALL_SIGN_KEY: Cow<'static, str> =
|
||||
Cow::Borrowed("RWTdnnab2pAka9OdwgCMYyOE66M/BlQoFWaJ/JjwcPV+f3n24IRTj97t");
|
||||
|
@ -144,7 +144,7 @@ impl super::Fetcher for QuickInstall {
|
|||
.expect("package_url is pre-generated and should never be invalid url"),
|
||||
signature_url: Url::parse(&format!("{url}.sig"))
|
||||
.expect("signature_url is pre-generated and should never be invalid url"),
|
||||
stats_url: Url::parse(&format!("{STATS_URL}/{package}.tar.gz",))
|
||||
stats_url: Url::parse(&format!("{QUICK_INSTALL_STATS_URL}/{package}.tar.gz",))
|
||||
.expect("stats_url is pre-generated and should never be invalid url"),
|
||||
package,
|
||||
signature_policy,
|
||||
|
|
|
@ -9,3 +9,5 @@ pub use binstalk_fetchers as fetchers;
|
|||
pub use binstalk_registry as registry;
|
||||
pub use binstalk_types as manifests;
|
||||
pub use detect_targets::{get_desired_targets, DesiredTargets, TARGET};
|
||||
|
||||
pub use fetchers::QUICK_INSTALL_STATS_URL;
|
||||
|
|
|
@ -55,4 +55,5 @@ pub struct Options {
|
|||
pub registry: Registry,
|
||||
|
||||
pub signature_policy: SignaturePolicy,
|
||||
pub disable_quick_install_stats: bool,
|
||||
}
|
||||
|
|
|
@ -176,7 +176,9 @@ async fn resolve_inner(
|
|||
}
|
||||
|
||||
for fetcher in handles {
|
||||
fetcher.clone().report_to_upstream();
|
||||
if !opts.disable_quick_install_stats {
|
||||
fetcher.clone().report_to_upstream();
|
||||
}
|
||||
match AutoAbortJoinHandle::new(fetcher.clone().find())
|
||||
.flattened_join()
|
||||
.await
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue