mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-04-16 19:18:20 +00:00
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.
This commit is contained in:
parent
02b2743b6a
commit
398e74f70b
@ -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 { };
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user