1{
2 lib,
3 runCommand,
4 makeBinaryWrapper,
5 rust-audit-info,
6 cargo,
7 cargo-auditable,
8}:
9
10if cargo-auditable.meta.broken then
11 cargo
12else
13 runCommand "auditable-${cargo.name}"
14 {
15 nativeBuildInputs = [ makeBinaryWrapper ];
16
17 passthru.tests =
18 runCommand "rust-audit-info-test"
19 {
20 nativeBuildInputs = [ rust-audit-info ];
21 }
22 ''
23 rust-audit-info ${lib.getBin rust-audit-info}/bin/rust-audit-info > $out
24 '';
25
26 meta = cargo-auditable.meta // {
27 mainProgram = "cargo";
28 };
29 }
30 ''
31 mkdir -p $out/bin
32 makeWrapper ${cargo}/bin/cargo $out/bin/cargo \
33 --set CARGO_AUDITABLE_IGNORE_UNSUPPORTED 1 \
34 --prefix PATH : ${
35 lib.makeBinPath [
36 cargo
37 cargo-auditable
38 ]
39 } \
40 --add-flags auditable
41 ''