diff --git a/lib/cargo-dylint.nix b/lib/cargo-dylint.nix index 6215960..9c04426 100644 --- a/lib/cargo-dylint.nix +++ b/lib/cargo-dylint.nix @@ -40,20 +40,6 @@ craneLib.buildPackage ( // { 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; } ) diff --git a/lib/mk-cargo-dylint-driver.nix b/lib/mk-cargo-dylint-driver.nix index face965..02affc7 100644 --- a/lib/mk-cargo-dylint-driver.nix +++ b/lib/mk-cargo-dylint-driver.nix @@ -3,21 +3,12 @@ craneLib, }: -toolchainName: +toolchainName: toolchain: let pname = "cargo-dylint-driver-${toolchainName}"; version = "4.0.0"; src = ../dylint_driver; - toolchain = - (pkgs.rust-bin.fromRustupToolchainFile ( - pkgs.writeText "${toolchainName}-toolchain.toml" toolchainName - )).override - { - extensions = [ - "rustc-dev" - ]; - }; in diff --git a/lib/mk-dylint.nix b/lib/mk-dylint.nix index 2c10fb0..595b4db 100644 --- a/lib/mk-dylint.nix +++ b/lib/mk-dylint.nix @@ -12,12 +12,22 @@ let inherit (pkgs) lib; 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 ( name: _: 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}'" mkCargoDylintDriver "${name}" + toolchains.${name} ) driver_names; drivers = pkgs.runCommandLocal "dylint-drivers" { } '' mkdir -p $out @@ -29,24 +39,11 @@ let ''; cargo-wrapper = pkgs.writeShellScriptBin "cargo" '' case "$RUSTUP_TOOLCHAIN" in - ${lib.strings.concatMapAttrsStringSep "\n" ( - name: driver: - let - toolchain = - (pkgs.rust-bin.fromRustupToolchainFile (pkgs.writeText "${name}-toolchain.toml" name)).override - { - extensions = [ - "rustc-dev" - ]; - }; - - in - '' - ${name}) - exec ${toolchain}/bin/cargo "$@" - ;; - '' - ) driverMap} + ${lib.strings.concatMapAttrsStringSep "\n" (name: _: '' + ${name}) + exec ${toolchains.${name}}/bin/cargo "$@" + ;; + '') driverMap} *) exec ${craneLib.cargo}/bin/cargo "$@" ;;