Clean up a bit and remove patches

Signed-off-by: Marcel Müller <neikos@neikos.email>
This commit is contained in:
Marcel Müller 2025-03-04 15:34:30 +01:00
parent 8c55f225dc
commit c8a98a05ee
3 changed files with 16 additions and 42 deletions

View file

@ -40,20 +40,6 @@ craneLib.buildPackage (
// { // {
inherit cargoArtifacts; inherit cargoArtifacts;
patches = [ ./cargo-dylint-patch-rustup.patch ];
postPatch = ''
substituteInPlace dylint/build.rs \
--replace-fail @DRIVER_DIR@ ${src}/driver
substituteInPlace internal/src/cargo.rs \
--replace-fail @STABLE_CARGO@ ${craneLib.cargo}/bin/cargo
substituteInPlace internal/src/rustup.rs \
--replace-fail @RUST_TOOLCHAIN@ $RUSTUP_TOOLCHAIN \
--replace-fail @RUST_TOOLCHAIN_PATH@ ${craneLib.rustc}
'';
doNotRemoveReferencesToRustToolchain = true; doNotRemoveReferencesToRustToolchain = true;
} }
) )

View file

@ -3,21 +3,12 @@
craneLib, craneLib,
}: }:
toolchainName: toolchainName: toolchain:
let let
pname = "cargo-dylint-driver-${toolchainName}"; pname = "cargo-dylint-driver-${toolchainName}";
version = "4.0.0"; version = "4.0.0";
src = ../dylint_driver; src = ../dylint_driver;
toolchain =
(pkgs.rust-bin.fromRustupToolchainFile (
pkgs.writeText "${toolchainName}-toolchain.toml" toolchainName
)).override
{
extensions = [
"rustc-dev"
];
};
in in

View file

@ -12,12 +12,22 @@
let let
inherit (pkgs) lib; inherit (pkgs) lib;
driver_names = lib.groupBy (v: v.toolchain) lints; driver_names = lib.groupBy (v: v.toolchain) lints;
toolchains = builtins.mapAttrs (
name: _:
(pkgs.rust-bin.fromRustupToolchainFile (pkgs.writeText "${name}-toolchain.toml" name)).override {
extensions = [
"rustc-dev"
];
}
) driver_names;
driverMap = builtins.mapAttrs ( driverMap = builtins.mapAttrs (
name: _: name: _:
lib.throwIf ((builtins.match "^[[:digit:]].*$" name) != null) lib.throwIf ((builtins.match "^[[:digit:]].*$" name) != null)
"Rust toolchains generally do not start with numbers. Make sure you include the channel, as in `nightly-YYYY-MM-DD`. Given '${name}'" "Rust toolchains generally do not start with numbers. Make sure you include the channel, as in `nightly-YYYY-MM-DD`. Given '${name}'"
mkCargoDylintDriver mkCargoDylintDriver
"${name}" "${name}"
toolchains.${name}
) driver_names; ) driver_names;
drivers = pkgs.runCommandLocal "dylint-drivers" { } '' drivers = pkgs.runCommandLocal "dylint-drivers" { } ''
mkdir -p $out mkdir -p $out
@ -29,24 +39,11 @@ let
''; '';
cargo-wrapper = pkgs.writeShellScriptBin "cargo" '' cargo-wrapper = pkgs.writeShellScriptBin "cargo" ''
case "$RUSTUP_TOOLCHAIN" in case "$RUSTUP_TOOLCHAIN" in
${lib.strings.concatMapAttrsStringSep "\n" ( ${lib.strings.concatMapAttrsStringSep "\n" (name: _: ''
name: driver:
let
toolchain =
(pkgs.rust-bin.fromRustupToolchainFile (pkgs.writeText "${name}-toolchain.toml" name)).override
{
extensions = [
"rustc-dev"
];
};
in
''
${name}) ${name})
exec ${toolchain}/bin/cargo "$@" exec ${toolchains.${name}}/bin/cargo "$@"
;; ;;
'' '') driverMap}
) driverMap}
*) *)
exec ${craneLib.cargo}/bin/cargo "$@" exec ${craneLib.cargo}/bin/cargo "$@"
;; ;;