mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-22 13:38:43 +00:00
Fix clippy
warnings and add new workflow clippy (#306)
* Derive `Eq` for `PkgFmt`, `PkgFmtDecomposed` & `TarBasedFmt` * Derive `Eq` for `PkgMeta`, `PkgOverride` & `BinMeta` * Rm unnecessary reborrow in `install_from_source` * Rm unnecessary `into()` in `args::parse` * Fix `clippy` warning in `CratesToml::append_to_path` * Fix clippy warning in `cratesio_url` * Fix clippy warning in `detect_targets_linux` * Add `clippy` and `rustfmt` to workflow `unit-test` Because `clippy` would not check inactive code disabled by `cfg`, so we have to also run `clippy` on multiple targets. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
4812456357
commit
1102284684
8 changed files with 19 additions and 14 deletions
8
.github/workflows/unit-tests.yml
vendored
8
.github/workflows/unit-tests.yml
vendored
|
@ -27,7 +27,7 @@ jobs:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Configure toolchain
|
- name: Configure toolchain
|
||||||
run: |
|
run: |
|
||||||
rustup toolchain install --profile minimal --no-self-update nightly
|
rustup toolchain install nightly --component rustfmt,clippy --no-self-update --profile minimal
|
||||||
rustup default nightly
|
rustup default nightly
|
||||||
|
|
||||||
- name: Configure caching
|
- name: Configure caching
|
||||||
|
@ -53,3 +53,9 @@ jobs:
|
||||||
- name: Test (Windows)
|
- name: Test (Windows)
|
||||||
if: matrix.os == 'windows'
|
if: matrix.os == 'windows'
|
||||||
run: cargo test --no-default-features --features native-tls
|
run: cargo test --no-default-features --features native-tls
|
||||||
|
|
||||||
|
- name: fmt
|
||||||
|
run: cargo fmt --all --check
|
||||||
|
|
||||||
|
- name: clippy
|
||||||
|
run: cargo clippy --no-deps -- -D clippy::all
|
||||||
|
|
|
@ -244,7 +244,7 @@ pub fn parse() -> Result<Args, BinstallError> {
|
||||||
};
|
};
|
||||||
|
|
||||||
if !option.is_empty() {
|
if !option.is_empty() {
|
||||||
return Err(BinstallError::OverrideOptionUsedWithMultiInstall { option }.into());
|
return Err(BinstallError::OverrideOptionUsedWithMultiInstall { option });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,5 +19,5 @@ pub fn cratesio_url() -> &'static Url {
|
||||||
static CRATESIO: Lazy<Url, fn() -> Url> =
|
static CRATESIO: Lazy<Url, fn() -> Url> =
|
||||||
Lazy::new(|| Url::parse("https://github.com/rust-lang/crates.io-index").unwrap());
|
Lazy::new(|| Url::parse("https://github.com/rust-lang/crates.io-index").unwrap());
|
||||||
|
|
||||||
&*CRATESIO
|
&CRATESIO
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,7 @@ impl CratesToml {
|
||||||
}
|
}
|
||||||
|
|
||||||
file.rewind()?;
|
file.rewind()?;
|
||||||
c1.write_to_file(&mut *file)?;
|
c1.write_to_file(&mut file)?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ pub struct Meta {
|
||||||
/// Metadata for binary installation use.
|
/// Metadata for binary installation use.
|
||||||
///
|
///
|
||||||
/// Exposed via `[package.metadata]` in `Cargo.toml`
|
/// Exposed via `[package.metadata]` in `Cargo.toml`
|
||||||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "kebab-case", default)]
|
#[serde(rename_all = "kebab-case", default)]
|
||||||
pub struct PkgMeta {
|
pub struct PkgMeta {
|
||||||
/// URL template for package downloads
|
/// URL template for package downloads
|
||||||
|
@ -79,7 +79,7 @@ impl PkgMeta {
|
||||||
/// Target specific overrides for binary installation
|
/// Target specific overrides for binary installation
|
||||||
///
|
///
|
||||||
/// Exposed via `[package.metadata.TARGET]` in `Cargo.toml`
|
/// Exposed via `[package.metadata.TARGET]` in `Cargo.toml`
|
||||||
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
|
#[derive(Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "kebab-case", default)]
|
#[serde(rename_all = "kebab-case", default)]
|
||||||
pub struct PkgOverride {
|
pub struct PkgOverride {
|
||||||
/// URL template override for package downloads
|
/// URL template override for package downloads
|
||||||
|
@ -92,7 +92,7 @@ pub struct PkgOverride {
|
||||||
pub bin_dir: Option<String>,
|
pub bin_dir: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "kebab-case")]
|
#[serde(rename_all = "kebab-case")]
|
||||||
pub struct BinMeta {
|
pub struct BinMeta {
|
||||||
/// Binary name
|
/// Binary name
|
||||||
|
|
|
@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize};
|
||||||
use strum_macros::{Display, EnumString};
|
use strum_macros::{Display, EnumString};
|
||||||
|
|
||||||
/// Binary format enumeration
|
/// Binary format enumeration
|
||||||
#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize, EnumString)]
|
#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize, Deserialize, EnumString)]
|
||||||
#[serde(rename_all = "snake_case")]
|
#[serde(rename_all = "snake_case")]
|
||||||
pub enum PkgFmt {
|
pub enum PkgFmt {
|
||||||
/// Download format is TAR (uncompressed)
|
/// Download format is TAR (uncompressed)
|
||||||
|
@ -55,14 +55,14 @@ impl PkgFmt {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, PartialEq)]
|
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
||||||
pub enum PkgFmtDecomposed {
|
pub enum PkgFmtDecomposed {
|
||||||
Tar(TarBasedFmt),
|
Tar(TarBasedFmt),
|
||||||
Bin,
|
Bin,
|
||||||
Zip,
|
Zip,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Display, Copy, Clone, PartialEq)]
|
#[derive(Debug, Display, Copy, Clone, Eq, PartialEq)]
|
||||||
pub enum TarBasedFmt {
|
pub enum TarBasedFmt {
|
||||||
/// Download format is TAR (uncompressed)
|
/// Download format is TAR (uncompressed)
|
||||||
Tar,
|
Tar,
|
||||||
|
|
|
@ -161,7 +161,7 @@ async fn install_from_source(
|
||||||
.arg("--version")
|
.arg("--version")
|
||||||
.arg(package.version)
|
.arg(package.version)
|
||||||
.arg("--target")
|
.arg("--target")
|
||||||
.arg(&*target);
|
.arg(target);
|
||||||
|
|
||||||
if quiet {
|
if quiet {
|
||||||
cmd.arg("--quiet");
|
cmd.arg("--quiet");
|
||||||
|
|
|
@ -136,12 +136,11 @@ mod linux {
|
||||||
pub(super) async fn detect_targets_linux() -> Vec<String> {
|
pub(super) async fn detect_targets_linux() -> Vec<String> {
|
||||||
let (abi, libc) = parse_abi_and_libc();
|
let (abi, libc) = parse_abi_and_libc();
|
||||||
|
|
||||||
match libc {
|
if let Libc::Glibc = libc {
|
||||||
// Glibc can only be dynamically linked.
|
// Glibc can only be dynamically linked.
|
||||||
// If we can run this binary, then it means that the target
|
// If we can run this binary, then it means that the target
|
||||||
// supports both glibc and musl.
|
// supports both glibc and musl.
|
||||||
Libc::Glibc => return create_targets_str(&["gnu", "musl"], abi),
|
return create_targets_str(&["gnu", "musl"], abi);
|
||||||
_ => (),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Ok(Output {
|
if let Ok(Output {
|
||||||
|
|
Loading…
Add table
Reference in a new issue