Declarative configuration of REUSE in your Nix shells
Find a file
2026-10-07 10:11:58 +02:00
LICENSES nix: switch to sprinkles-v2 2026-06-30 16:15:53 +02:00
nix sprinkle: update 2026-10-07 10:08:03 +02:00
.envrc chore: move the sprinkle to a subdirectory and update sources 2026-02-26 13:37:30 +01:00
.gitignore feat(nix-reuse): Init 2024-12-12 10:18:22 +01:00
default.nix copyright: update e-mail address 2026-10-07 10:07:53 +02:00
README.md readme: remove mentions to DGNum and use correct entrypoints 2026-10-07 10:11:58 +02:00
REUSE.toml chore: move the sprinkle to a subdirectory and update sources 2026-02-26 13:37:30 +01:00
shell.nix sprinkle: update 2026-10-07 10:08:03 +02:00

Integration of reuse with Nix

Features

  • Provides a shell hook to generate the REUSE.toml file
  • Provides a hook to be used with git-hooks.nix

Getting started

REUSE.toml generation

npins

  1. Add nix-reuse to your sources:
npins add git https://git.afnix.fr/afnix/nix-reuse
  1. Integrate workflows to shell.nix:
let
    sources = import ./npins;
    reuse = (import sources.nix-reuse).run {
        defaultLicense = "EUPL-1.2";
        defaultCopyright = "Jane Doe <jane.doe@example.com>";

        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 for this project.

reuse git-hook

npins

  1. Add nix-reuse to your sources:
npins add git https://git.afnix.fr/afnix/nix-reuse
  1. Integrate reuse to git hooks:
let
    sources = import ./npins;
    git-checks = (import sources."git-hooks.nix").run {
        src = ./.;

        hooks = {
            reuse = (import sources.nix-reuse).gitHook { };
        };
    };
in

with (import sources.nixpkgs { });

mkShell {
    packages = [ ... ];

    inherit (git-checks) shellHook;
}