cargo-binstall/crates/binstalk/src/ops.rs
Jiahao XU 6809601273
Add new option to --disable-telemetry to disable quickinstall statistics collection (#1831)
* Add new option `--disable-quick-install-stats`

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

* Send quickinstall stats in parallel

This commit also make sure'the stats is always sent for
each fetcher, regardless of whether it is picked or not,
to make sure that the quick-install stats collection gets
the full infomration of possible targets.

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

* Rename option to `--disable-telemetry`

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

* Update args.rs

Co-authored-by: Félix Saparelli <felix@passcod.name>
Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>

* Update 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>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2024-07-26 06:03:38 +00:00

59 lines
1.4 KiB
Rust

//! Concrete Binstall operations.
use std::{path::PathBuf, sync::Arc};
use semver::VersionReq;
use crate::{
fetchers::{Data, Fetcher, SignaturePolicy, TargetDataErased},
helpers::{
gh_api_client::GhApiClient, jobserver_client::LazyJobserverClient,
lazy_gh_api_client::LazyGhApiClient, remote::Client,
},
manifests::cargo_toml_binstall::PkgOverride,
registry::Registry,
DesiredTargets,
};
pub mod resolve;
pub type Resolver =
fn(Client, GhApiClient, Arc<Data>, Arc<TargetDataErased>, SignaturePolicy) -> Arc<dyn Fetcher>;
#[derive(Debug)]
#[non_exhaustive]
pub enum CargoTomlFetchOverride {
#[cfg(feature = "git")]
Git(crate::helpers::git::GitUrl),
Path(PathBuf),
}
#[derive(Debug)]
pub struct Options {
pub no_symlinks: bool,
pub dry_run: bool,
pub force: bool,
pub quiet: bool,
pub locked: bool,
pub no_track: bool,
pub version_req: Option<VersionReq>,
pub cargo_toml_fetch_override: Option<CargoTomlFetchOverride>,
pub cli_overrides: PkgOverride,
pub desired_targets: DesiredTargets,
pub resolvers: Vec<Resolver>,
pub cargo_install_fallback: bool,
pub temp_dir: PathBuf,
pub install_path: PathBuf,
pub cargo_root: Option<PathBuf>,
pub client: Client,
pub gh_api_client: LazyGhApiClient,
pub jobserver_client: LazyJobserverClient,
pub registry: Registry,
pub signature_policy: SignaturePolicy,
pub disable_telemetry: bool,
}