mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-05-05 11:40:04 +00:00

* Add CLI options * Add manifest types * Thread signature policy through to fetchers * Thread signing section through from metadata * Implement signing validation * Clippy * Attempt testing * Yes and * Why * fmt * Update crates/bin/src/args.rs Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com> * Update crates/binstalk-fetchers/src/gh_crate_meta.rs Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com> * Update crates/bin/src/args.rs Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com> * Update crates/binstalk-fetchers/src/signing.rs Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com> * Update crates/binstalk-fetchers/src/signing.rs Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com> * Update crates/binstalk-fetchers/src/signing.rs Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com> * Update crates/binstalk-fetchers/src/signing.rs Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com> * fixes * Finish feature * Document * Include all fields in the signing.file template * Readme document * Review fixes * Fail on non-utf8 sig * Thank goodness for tests * Run test in ci * Add rsign2 commands * Log utf8 error * Update e2e-tests/signing.sh Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix `e2e-tests/signing.sh` MacOS CI failure Move the tls cert creation into `signing.sh` and sleep for 10s to wait for https server to start. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor e2e-tests-signing files - Use a tempdir generated by `mktemp` for all certificates-related files - Put other checked-in files into `e2e-tests/signing` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fixed `e2e-tests-signing` connection err in MacOS CI Wait for server to start up by trying to connect to it. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix `e2e-tests-signing` passing `-subj` to `openssl` on Windows Use single quote instead of double quote to avoid automatic expansion from bash Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix `e2e-tests-signing` waiting for server to startup Remove `timeout` since it is not supported on MacOS. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Try to fix windows CI by setting `MSYS_NO_PATHCONV=1` on `openssl` cmds Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fixed `e2e-tests-signing` on windows By using double `//` for the value passed to option `-subj` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fixed infinite loop in `signing/wait-for-server` on Windows Pass `--ssl-revoke-best-effort` to prevent schannel from checking ssl revocation status. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add cap on retry attempt in `signing/wait-for-server.sh` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Let `singing/server.py` print output to stderr so that we can see the error message there. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix running `signing/server.py` on MacOS CI use `python3` since macos-latest still has python2 installed and `python` is a symlink to `python2` there. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> --------- Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>
57 lines
1.4 KiB
Rust
57 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::{
|
|
self, gh_api_client::GhApiClient, jobserver_client::LazyJobserverClient, 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(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: GhApiClient,
|
|
pub jobserver_client: LazyJobserverClient,
|
|
pub registry: Registry,
|
|
|
|
pub signature_policy: SignaturePolicy,
|
|
}
|