# Integration of [reuse](https://reuse.software) with [Nix](https://lix.systems/) ## Features - Provides a shell hook to generate the `REUSE.toml` file - Provides a hook to be used with [git-hooks.nix](https://github.com/cachix/git-hooks.nix) ## Getting started ### `REUSE.toml` generation #### npins 1. Add `nix-reuse` to your sources: ```bash npins add git https://git.dgnum.eu/DGNum/nix-reuse ``` 2. Integrate workflows to `shell.nix`: ```nix let sources = import ./npins; reuse = (import sources.nix-reuse { }).install { defaultLicense = "EUPL-1.2"; defaultCopyright = "Jane Doe "; generatedPaths = [ ".envrc" ".gitignore" "REUSE.toml" ]; annotations = [ { path = "default.nix"; } { path = "npins/*"; license = "EUPL-1.2"; copyright = "The [npins](https://github.com/andir/npins) contributors"; } ]; }; in with (import sources.nixpkgs { }); mkShell { packages = [ ... ]; inherit (reuse) shellHook; } ``` #### Options - `defaultLicense`: the default license SPDX identifier used accross the project. - `defaultCopyright`: the default copyright text used accross the project. - `downloadLicenses`: whether to download automatically the missing licenses detectd in the project. - `generatedPaths`: a list of computer-generated files, they will be declared with a copyright of `NONE` and the `CC0-1.0` license. - `annotations`: the list of [annotations](https://reuse.software/spec-3.3/#reusetoml) for this project. ### reuse git-hook #### npins 1. Add `nix-reuse` to your sources: ```bash npins add git https://git.dgnum.eu/DGNum/nix-reuse ``` 2. Integrate reuse to git hooks: ```nix let sources = import ./npins; git-checks = (import sources."git-hooks.nix").run { src = ./.; hooks = { reuse = (import sources.nix-reuse { }).hook { enable = true; }; }; }; in with (import sources.nixpkgs { }); mkShell { packages = [ ... ]; inherit (git-checks) shellHook; } ```