Compare commits

...

2 commits

Author SHA1 Message Date
aa5eda3c9a Give cargo dylint the correct toolchain if it asks for it
Signed-off-by: Marcel Müller <neikos@neikos.email>
2025-03-04 15:22:01 +01:00
e9732eb1ec Passthru lints
Signed-off-by: Marcel Müller <neikos@neikos.email>
2025-03-04 15:02:53 +01:00

View file

@ -26,12 +26,38 @@ let
ln -s ${driver}/bin/dylint_driver-nix $out/${name}/dylint-driver
'') driverMap}
'';
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}
*)
exec cargo "$@"
;;
esac
'';
in
pkgs.runCommandLocal "cargo-dylint-wrapped"
{
nativeBuildInputs = [ pkgs.makeWrapper ];
meta.mainProgram = "cargo-dylint";
passthru = {
inherit lints;
DYLINT_LIBRARY_PATH = lib.strings.makeLibraryPath (builtins.map (v: v.package) lints);
DYLINT_DRIVER_PATH = drivers;
};
@ -41,7 +67,8 @@ pkgs.runCommandLocal "cargo-dylint-wrapped"
--set-default DYLINT_LIBRARY_PATH "${
lib.strings.makeLibraryPath (builtins.map (v: v.package) lints)
}" \
--set DYLINT_DRIVER_PATH ${drivers};
--set DYLINT_DRIVER_PATH ${drivers} \
--prefix PATH : ${lib.makeBinPath [ cargo-wrapper ]}
ln -s ${cargo-dylint}/bin/dylint-link $out/bin/dylint-link
''