Add README
Signed-off-by: Marcel Müller <neikos@neikos.email>
This commit is contained in:
parent
c394a61aa0
commit
c7066340b8
1 changed files with 46 additions and 0 deletions
46
README.md
Normal file
46
README.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Dylint as a nix library
|
||||
|
||||
This repository contains a nix library that allows easy access to the
|
||||
[dylint](https://github.com/trailofbits/dylint) project in a reproducible way.
|
||||
|
||||
|
||||
## How to use
|
||||
|
||||
Dylint has some [great
|
||||
documentation](https://github.com/trailofbits/dylint/blob/f4cdda1d071022a2bb846b810333544d1238559b/docs/2024-10-11%20Linting%20with%20Dylint%20(EuroRust).pdf)
|
||||
on how Dylint itself works.
|
||||
|
||||
This library then compiles and assembles the different parts you need to get it
|
||||
working inside nix.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Using `nix-dylint` requires the following:
|
||||
|
||||
- A `nixpkgs` instance with the `rust-overlay` applied from
|
||||
[`oxalica/rust-overlay`](https://github.com/oxalica/rust-overlay/tree/master).
|
||||
- A list of lints and their nightly toolchains, formatted as e.g.
|
||||
`nightly-{date}`
|
||||
|
||||
### Building a dylint instance
|
||||
|
||||
Dylint tries its best to do everything for you, but this clashes with the way
|
||||
`nix`-users generally use their software. So this library generates a
|
||||
`cargo-dylint` wrapper with the relevant env variables set such that it should
|
||||
not build anything.
|
||||
|
||||
Assembling it all, it might look like this:
|
||||
|
||||
```nix
|
||||
dylintLib = inputs.nix-dylint.mkLib { inherit pkgs crane; };
|
||||
dylint = dylintLib.mkDylint { lints = [
|
||||
{
|
||||
toolchain = "nightly-2025-01-09";
|
||||
package = dylintLib.cargo-dylint-general;
|
||||
}
|
||||
]; }
|
||||
```
|
||||
|
||||
|
||||
`dylint` is then a derivation that provides the `cargo-dylint` executable. One
|
||||
can then use it as usual.
|
||||
Loading…
Add table
Add a link
Reference in a new issue