summaryrefslogtreecommitdiff
path: root/nix/package/nixfmt-3-space.nix
blob: fe2b00304bc4a3582ff083b9846a55053429b292 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#──────────────────────────────────────────────────────────────────────────────┐
# SPDX-FileCopyrightText: 2025 toastal <https://toast.al/contact/>             │
# SPDX-License-Identifier: LGPL-2.1-or-later                                   │
#──────────────────────────────────────────────────────────────────────────────┘
# I don’t like *this* formatter, but it is *a* formatter. Tweaking it to expand
# to 3 spaces, helps the maker actually read the code since 2 spaces is not
# enough contrast (& Nix magic strings don’t support tabs).
{
   lib,
   writeTextFile,
   dash,
   nixfmt-rfc-style,
   stdenvNoCC,
}:

writeTextFile {
   name = "nixfmt-3-space";
   executable = true;
   destination = "/bin/nixfmt";
   text = /* sh */ ''
      #!${lib.getExe dash}
      exec ${lib.getExe nixfmt-rfc-style} --indent=3 "$@"
   '';
   checkPhase = ''
      runHook preCheck
      ${stdenvNoCC.shellDryRun} "$target"
      runHook postCheck
   '';
   meta.mainProgram = "nixfmt";
}