diff --git a/modules/formatter.nix b/modules/formatter.nix
index a63a9ba..d5b0435 100644
--- a/modules/formatter.nix
+++ b/modules/formatter.nix
@@ -1,55 +1,21 @@
{ config, lib, flake-parts-lib, ... }:
let
inherit (lib)
- filterAttrs
- mapAttrs
mkOption
- optionalAttrs
types
;
inherit (flake-parts-lib)
- mkSubmoduleOptions
- mkPerSystemOption
+ mkTransposedPerSystemModule
;
in
-{
- 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};
- };
-
+mkTransposedPerSystemModule {
+ name = "formatter";
+ option = mkOption {
+ type = types.nullOr types.package;
+ default = null;
+ description = ''
+ A package used by nix fmt.
+ '';
};
+ file = ./formatter.nix;
}