diff --git a/flake.lock b/flake.lock index 1bc69bb..52e4698 100644 --- a/flake.lock +++ b/flake.lock @@ -1029,6 +1029,22 @@ } }, "nixpkgs_12": { + "locked": { + "lastModified": 1761236834, + "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d5faa84122bc0a1fd5d378492efce4e289f8eac1", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_13": { "locked": { "lastModified": 1615532953, "narHash": "sha256-SWpaGjrp/INzorEqMz3HLi6Uuk9I0KAn4YS8B4n3q5g=", @@ -1372,6 +1388,7 @@ "stylix": "stylix_2", "telebots": "telebots_2", "tinc-graph": "tinc-graph_2", + "treefmt-nix": "treefmt-nix_2", "voidrice": "voidrice_2", "wallpaper-generator": "wallpaper-generator_2", "wallpapers": "wallpapers_2" @@ -1849,6 +1866,24 @@ "type": "github" } }, + "treefmt-nix_2": { + "inputs": { + "nixpkgs": "nixpkgs_12" + }, + "locked": { + "lastModified": 1766000401, + "narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "voidrice": { "flake": false, "locked": { @@ -1908,7 +1943,7 @@ "wallpaper-generator_2": { "inputs": { "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_12" + "nixpkgs": "nixpkgs_13" }, "locked": { "lastModified": 1615819231, diff --git a/flake.nix b/flake.nix index 1ceaa28..2e54f26 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,7 @@ stylix.url = "github:danth/stylix/release-25.11"; telebots.url = "github:kmein/telebots"; tinc-graph.url = "github:kmein/tinc-graph"; + treefmt-nix.url = "github:numtide/treefmt-nix"; voidrice.url = "github:Lukesmithxyz/voidrice"; wallpaper-generator.url = "github:pinpox/wallpaper-generator/v1.1"; wallpapers.url = "github:kmein/wallpapers"; @@ -57,6 +58,7 @@ scripts, tinc-graph, recht, + treefmt-nix, autorenkalender, wallpaper-generator, telebots, @@ -69,6 +71,20 @@ let lib = nixpkgs.lib; eachSupportedSystem = lib.genAttrs lib.systems.flakeExposed; + treefmtEval = eachSupportedSystem ( + system: + treefmt-nix.lib.evalModule nixpkgs.legacyPackages.${system} ( + { pkgs, ... }: + { + projectRootFile = "flake.nix"; + programs.nixfmt.enable = true; + programs.ormolu.enable = true; + programs.black.enable = true; + programs.prettier.enable = true; + programs.stylua.enable = true; + } + ) + ); in { apps = @@ -240,8 +256,10 @@ # packaged from inputs agenix = agenix.packages.${prev.stdenv.hostPlatform.system}.default; alarm = scripts.packages.${prev.stdenv.hostPlatform.system}.alarm; - menstruation-telegram = menstruation-telegram.packages.${prev.stdenv.hostPlatform.system}.menstruation-telegram; - menstruation-backend = menstruation-backend.packages.${prev.stdenv.hostPlatform.system}.menstruation-backend; + menstruation-telegram = + menstruation-telegram.packages.${prev.stdenv.hostPlatform.system}.menstruation-telegram; + menstruation-backend = + menstruation-backend.packages.${prev.stdenv.hostPlatform.system}.menstruation-backend; telebots = telebots.packages.${prev.stdenv.hostPlatform.system}.telebots; hesychius = scripts.packages.${prev.stdenv.hostPlatform.system}.hesychius; autorenkalender = autorenkalender.packages.${prev.stdenv.hostPlatform.system}.default; @@ -414,7 +432,10 @@ }; }; - formatter = eachSupportedSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-tree); + formatter = eachSupportedSystem (system: treefmtEval.${system}.config.build.wrapper); + checks = eachSupportedSystem (system: { + formatting = treefmtEval.${system}.config.build.check self; + }); packages = eachSupportedSystem ( system: