From 88e1e2f3c22fd24f5b3a47033526c627c8667464 Mon Sep 17 00:00:00 2001 From: ยท๐‘‘๐‘ด๐‘•๐‘‘๐‘ฉ๐‘ค Date: Tue, 23 Dec 2025 06:22:23 +0000 Subject: nix/check: onset --- nix/check/editorconfig.nix | 38 ++++++++++++++++++++++++++++++++++++++ nix/check/nixfmt.nix | 43 +++++++++++++++++++++++++++++++++++++++++++ nix/overlay/check.nix | 27 ++++++--------------------- 3 files changed, 87 insertions(+), 21 deletions(-) create mode 100644 nix/check/editorconfig.nix create mode 100644 nix/check/nixfmt.nix (limited to 'nix') 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 โ”‚ +# 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 โ”‚ +# 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 { }; + }; }; } ); -- cgit v1.2.3