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