deadnix is a package to find unused nix code, we can add it to enforce that we don't leave let bindings/inputs/etc. around when they are not needed
+21
.tangled/workflows/deadnix.yml
+21
.tangled/workflows/deadnix.yml
···
···
1
+
# SPDX-FileCopyrightText: 2025 FreshlyBakedCake
2
+
#
3
+
# SPDX-License-Identifier: MIT
4
+
5
+
when:
6
+
- event: ["push", "pull_request"]
7
+
branch: ["main"]
8
+
9
+
engine: nixery
10
+
11
+
dependencies:
12
+
nixpkgs:
13
+
- ansifilter
14
+
- deadnix
15
+
16
+
steps:
17
+
- name: Check for unused nix bindings
18
+
command: |
19
+
set -eo pipefail
20
+
21
+
deadnix --exclude **/npins --no-underscore --fail | ansifilter
+1
packetmix/nilla.nix
+1
packetmix/nilla.nix
···
134
config.inputs.nilla-home.result.packages.nilla-home.result.${system}
135
config.inputs.nilla-nixos.result.packages.nilla-nixos.result.${system}
136
config.inputs.nixos-unstable.result.${system}.quickshell
137
config.packages.nilla-fmt.result.${system}
138
config.packages.treefmt.result.${system}
139
(config.inputs.npins.result { inherit pkgs system; })
···
134
config.inputs.nilla-home.result.packages.nilla-home.result.${system}
135
config.inputs.nilla-nixos.result.packages.nilla-nixos.result.${system}
136
config.inputs.nixos-unstable.result.${system}.quickshell
137
+
config.inputs.nixpkgs.result.${system}.deadnix
138
config.packages.nilla-fmt.result.${system}
139
config.packages.treefmt.result.${system}
140
(config.inputs.npins.result { inherit pkgs system; })