From a78bfeaa86945568ed0a09a4d6ecfa172ae679aa Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 13 Nov 2022 11:50:16 +0100 Subject: [PATCH] Revert "formatter: Use mkTransposedPerSystemModule" This reverts commit e7da962abb2fa053a2601211a0e56ded9ac779d1. --- modules/formatter.nix | 54 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/modules/formatter.nix b/modules/formatter.nix index b6098db..a63a9ba 100644 --- a/modules/formatter.nix +++ b/modules/formatter.nix @@ -1,21 +1,55 @@ { config, lib, flake-parts-lib, ... }: let inherit (lib) + filterAttrs + mapAttrs mkOption + optionalAttrs types ; inherit (flake-parts-lib) - mkTransposedPerSystemModule + mkSubmoduleOptions + mkPerSystemOption ; in -mkTransposedPerSystemModule { - name = "formatter"; - option = mkOption { - type = types.nullOr types.package; - default = null; - description = '' - A package used by [`nix fmt`](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-fmt.html). - ''; +{ + options = { + flake = mkSubmoduleOptions { + formatter = mkOption { + type = types.lazyAttrsOf types.package; + default = { }; + description = '' + Per system package used by nix fmt. + ''; + }; + }; + + perSystem = mkPerSystemOption ({ config, ... }: { + _file = ./formatter.nix; + options = { + formatter = mkOption { + type = types.nullOr types.package; + default = null; + description = '' + A package used by nix fmt. + ''; + }; + }; + }); + }; + config = { + flake.formatter = + mapAttrs + (k: v: v.formatter) + (filterAttrs + (k: v: v.formatter != null) + config.allSystems + ); + + perInput = system: flake: + optionalAttrs (flake?formatter.${system}) { + formatter = flake.formatter.${system}; + }; + }; - file = ./formatter.nix; }