Commit 398e74f7 authored by Silvan Mosberger's avatar Silvan Mosberger Committed by Silvan Mosberger
Browse files

shell: Introduce treefmt

Introduces treefmt with a simple nixfmt-rfc-style configuration to
format all Nix files.

This is only practically usable with the following commit that formats
all files accordingly.
parent 02b2743b
Loading
Loading
Loading
Loading
+34 −1
Original line number Diff line number Diff line
@@ -21,9 +21,42 @@ let
    config = { };
    overlays = [ ];
  };

  fmt =
    let
      treefmtNixSrc = fetchTarball {
        # Master at 2025-02-12
        url = "https://github.com/numtide/treefmt-nix/archive/4f09b473c936d41582dd744e19f34ec27592c5fd.tar.gz";
        sha256 = "051vh6raskrxw5k6jncm8zbk9fhbzgm1gxpq9gm5xw1b6wgbgcna";
      };
      treefmtEval = (import treefmtNixSrc).evalModule pkgs {
        # Important: The auto-rebase script uses `git filter-branch --tree-filter`,
        # which creates trees within the Git repository under `.git-rewrite/t`,
        # notably without having a `.git` themselves.
        # So if this projectRootFile were the default `.git/config`,
        # having the auto-rebase script use treefmt on such a tree would make it
        # format all files in the _parent_ Git tree as well.
        projectRootFile = ".git-blame-ignore-revs";

        # Be a bit more verbose by default, so we can see progress happening
        settings.verbose = 1;

        # By default it's info, which is too noisy since we have many unmatched files
        settings.on-unmatched = "debug";

        # This uses nixfmt-rfc-style underneath,
        # the default formatter for Nix code.
        # See https://github.com/NixOS/nixfmt
        programs.nixfmt.enable = true;
      };
    in
    {
      shell = treefmtEval.config.build.devShell;
    };

in
{
  inherit pkgs;
  inherit pkgs fmt;
  requestReviews = pkgs.callPackage ./request-reviews { };
  codeownersValidator = pkgs.callPackage ./codeowners-validator { };
  eval = pkgs.callPackage ./eval { };
+4 −4
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
  nixpkgs ? null,
}:
let
  inherit (import ./ci { inherit nixpkgs system; }) pkgs;
  inherit (import ./ci { inherit nixpkgs system; }) pkgs fmt;

  # For `nix-shell -A hello`
  curPkgs = builtins.removeAttrs (import ./. { inherit system; }) [
@@ -28,10 +28,10 @@ let
in
curPkgs
// pkgs.mkShellNoCC {
  inputsFrom = [
    fmt.shell
  ];
  packages = with pkgs; [
    # The default formatter for Nix code
    # See https://github.com/NixOS/nixfmt
    nixfmt-rfc-style
    # Helper to review Nixpkgs PRs
    # See CONTRIBUTING.md
    nixpkgs-review