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:
Jiahao XU 2022-08-21 00:40:50 +10:00 committed by GitHub
parent 4812456357
commit 1102284684
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 19 additions and 14 deletions

View file

@ -244,7 +244,7 @@ pub fn parse() -> Result<Args, BinstallError> {
};
if !option.is_empty() {
return Err(BinstallError::OverrideOptionUsedWithMultiInstall { option }.into());
return Err(BinstallError::OverrideOptionUsedWithMultiInstall { option });
}
}

View file

@ -19,5 +19,5 @@ pub fn cratesio_url() -> &'static Url {
static CRATESIO: Lazy<Url, fn() -> Url> =
Lazy::new(|| Url::parse("https://github.com/rust-lang/crates.io-index").unwrap());
&*CRATESIO
&CRATESIO
}

View file

@ -99,7 +99,7 @@ impl CratesToml {
}
file.rewind()?;
c1.write_to_file(&mut *file)?;
c1.write_to_file(&mut file)?;
Ok(())
}

View file

@ -30,7 +30,7 @@ pub struct Meta {
/// Metadata for binary installation use.
///
/// 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)]
pub struct PkgMeta {
/// URL template for package downloads
@ -79,7 +79,7 @@ impl PkgMeta {
/// Target specific overrides for binary installation
///
/// 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)]
pub struct PkgOverride {
/// URL template override for package downloads
@ -92,7 +92,7 @@ pub struct PkgOverride {
pub bin_dir: Option<String>,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub struct BinMeta {
/// Binary name

View file

@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize};
use strum_macros::{Display, EnumString};
/// 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")]
pub enum PkgFmt {
/// 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 {
Tar(TarBasedFmt),
Bin,
Zip,
}
#[derive(Debug, Display, Copy, Clone, PartialEq)]
#[derive(Debug, Display, Copy, Clone, Eq, PartialEq)]
pub enum TarBasedFmt {
/// Download format is TAR (uncompressed)
Tar,

View file

@ -161,7 +161,7 @@ async fn install_from_source(
.arg("--version")
.arg(package.version)
.arg("--target")
.arg(&*target);
.arg(target);
if quiet {
cmd.arg("--quiet");

View file

@ -136,12 +136,11 @@ mod linux {
pub(super) async fn detect_targets_linux() -> Vec<String> {
let (abi, libc) = parse_abi_and_libc();
match libc {
if let Libc::Glibc = libc {
// Glibc can only be dynamically linked.
// If we can run this binary, then it means that the target
// 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 {