diff --git a/flake.nix b/flake.nix index bffeca8..7ab6ec8 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,6 @@ systems = [ "aarch64-linux" "x86_64-linux" - "riscv64-linux" "x86_64-darwin" "aarch64-darwin" @@ -34,32 +33,9 @@ ./targets/flake-module.nix ./modules/flake-module.nix ./checks/flake-module.nix + ./formatter.nix ]; perSystem = { config, self', system, pkgs, ... }: { - treefmt = { - projectRootFile = "flake.nix"; - programs.hclfmt.enable = true; - programs.nixpkgs-fmt.enable = true; - }; - packages.default = - pkgs.mkShell { - packages = - let - convert2Tofu = provider: provider.override (prev: { - homepage = builtins.replaceStrings [ "registry.terraform.io/providers" ] [ "registry.opentofu.org" ] prev.homepage; - }); - in - [ - pkgs.bashInteractive - pkgs.sops - (pkgs.opentofu.withPlugins (p: builtins.map convert2Tofu [ - p.hcloud - p.null - p.external - p.local - ])) - ]; - }; checks = let diff --git a/formatter.nix b/formatter.nix new file mode 100644 index 0000000..9fdf1a1 --- /dev/null +++ b/formatter.nix @@ -0,0 +1,64 @@ +{ + + perSystem = + { config + , self' + , system + , pkgs + , ... + }: + { + treefmt = { + projectRootFile = "flake.nix"; + settings.global.excludes = [ + "*/nixos-vars.json" + "*/secrets.yaml" + "*.lock" + ".gitignore" + "modules/nixos-wiki/favicon.ico" + "modules/nixos-wiki/nixos.png" + "modules/nixos-wiki/robots.txt" + "oauth-permissions.png" + "targets/nixos-wiki.nixos.org/secrets/*" + ]; + programs.hclfmt.enable = true; + programs.nixpkgs-fmt.enable = true; + programs.ruff.format = true; + programs.ruff.check = true; + programs.shfmt.enable = true; + programs.yamlfmt.enable = true; + settings.formatter.shfmt.includes = [ + "*.envrc" + "*.envrc.private-template" + ]; + programs.shellcheck.enable = true; + programs.deno.enable = true; + }; + packages.default = pkgs.mkShell { + packages = + let + convert2Tofu = + provider: + provider.override (prev: { + homepage = builtins.replaceStrings [ "registry.terraform.io/providers" ] [ + "registry.opentofu.org" + ] + prev.homepage; + }); + in + [ + pkgs.bashInteractive + pkgs.sops + (pkgs.opentofu.withPlugins ( + p: + builtins.map convert2Tofu [ + p.hcloud + p.null + p.external + p.local + ] + )) + ]; + }; + }; +}