diff options
| -rw-r--r-- | nix/check/editorconfig.nix | 38 | ||||
| -rw-r--r-- | nix/check/nixfmt.nix | 43 | ||||
| -rw-r--r-- | nix/overlay/check.nix | 27 | ||||
| -rw-r--r-- | release.nix | 13 |
4 files changed, 99 insertions, 22 deletions
diff --git a/nix/check/editorconfig.nix b/nix/check/editorconfig.nix new file mode 100644 index 0000000..526ed5b --- /dev/null +++ b/nix/check/editorconfig.nix @@ -0,0 +1,38 @@ +#──────────────────────────────────────────────────────────────────────────────┐ +# SPDX-FileCopyrightText: 2025 toastal <https://toast.al/contact/> │ +# SPDX-License-Identifier: LGPL-2.1-or-later │ +#──────────────────────────────────────────────────────────────────────────────┘ +{ + lib, + runDashCommand, + editorconfig-checker, + nixtamal, +}: + +runDashCommand + { + name = "check-EditorConfig"; + runtimeInputs = [ + editorconfig-checker + ]; + env.src = + let + fs = lib.fileset; + in + (fs.toSource { + root = ../..; + fileset = fs.unions [ + (fs.fileFilter (file: file.name == ".editorconfig") ../..) + (fs.fromSource nixtamal.src) + ../../nix + ]; + }); + } + /* sh */ '' + if [ -z "$src" ]; then + echo "Missing \$src" >&2 + exit 1 + fi + cd "$src" + editorconfig-checker | tee "$out" + '' diff --git a/nix/check/nixfmt.nix b/nix/check/nixfmt.nix new file mode 100644 index 0000000..4d22883 --- /dev/null +++ b/nix/check/nixfmt.nix @@ -0,0 +1,43 @@ +#──────────────────────────────────────────────────────────────────────────────┐ +# SPDX-FileCopyrightText: 2025 toastal <https://toast.al/contact/> │ +# SPDX-License-Identifier: LGPL-2.1-or-later │ +#──────────────────────────────────────────────────────────────────────────────┘ +{ + lib, + runDashCommand, + parallel, + nixfmt, + keepLogOrder ? true, +}: + +runDashCommand + { + name = "check-nixfmt"; + runtimeInputs = [ + parallel + nixfmt + ]; + env.src = + let + fs = lib.fileset; + in + fs.toSource { + root = ../..; + fileset = + fs.intersection (fs.fileFilter (file: file.hasExt "nix") ../..) + + (fs.difference (fs.fromSource (lib.cleanSource ../..)) ../tamal); + }; + } + /* sh */ '' + if [ -z "$src" ]; then + echo "Missing \$src" >&2 + exit 1 + fi + find "$src" -type f \ + | parallel --will-cite \ + ${lib.optionalString keepLogOrder "--keep-order"} \ + --jobs "''${NIX_BUILD_CORES:-1}" \ + nixfmt --check {} \ + | tee "$out" + '' diff --git a/nix/overlay/check.nix b/nix/overlay/check.nix index 8a6ec2b..98f60c0 100644 --- a/nix/overlay/check.nix +++ b/nix/overlay/check.nix @@ -5,27 +5,12 @@ final: prev: { nixtamal = prev.nixtamal.overrideScope ( final': prev': { - check = (prev'.check or { }) // { - EditorConfig = - final.runCommand "check-EditorConfig" - { - src = - let - fs = final.lib.fileset; - in - (fs.toSource { - root = ../..; - fileset = fs.unions [ - (fs.fileFilter (file: file.name == ".editorconfig") ../..) - (fs.fromSource prev'.nixtamal.src) - ../../nix - ]; - }); - } - '' - cd $src - ${final.lib.getExe final.editorconfig-checker} | tee $out - ''; + check = { + format = { + EditorConfig = final'.callPackage ../check/editorconfig.nix { }; + + nixfmt = final'.callPackage ../check/nixfmt.nix { }; + }; }; } ); diff --git a/release.nix b/release.nix index fcb1a39..6e676e0 100644 --- a/release.nix +++ b/release.nix @@ -12,6 +12,8 @@ let (import ./nix/overlay/check.nix) ]; }; + + inherit (pkgs) lib; in { inherit (pkgs) nixtamal; @@ -20,5 +22,14 @@ in shell = pkgs.nixtamal.dev-shell; - check = pkgs.nixtamal.check; + check = lib.concatMapAttrs ( + parent: children: + if lib.isDerivation children then + { ${parent} = children; } + else + lib.mapAttrs' (child: value: { + name = "${parent}_${child}"; + inherit value; + }) children + ) pkgs.nixtamal.check; } |
