DeterminateSystems / fh

The official CLI for FlakeHub: search for flakes, and add new inputs to your Nix flake.
https://flakehub.com
Apache License 2.0
105 stars 8 forks source link

fh init: When using a formatter also set the formatter output #93

Open jalil-salame opened 5 months ago

jalil-salame commented 5 months ago

Problem

When choosing to use a formatter, the formatter is only added to the devShells:

  # Flake outputs that other flakes can use
  outputs = { self, flake-schemas, nixpkgs }:
    let
      # Helpers for producing system-specific outputs
      supportedSystems = [ "x86_64-linux" "aarch64-linux" ];
      forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f {
        pkgs = import nixpkgs { inherit system; };
      });
    in
    {
      # Schemas tell Nix about the structure of your flake's outputs
      schemas = flake-schemas.schemas;

      # Development environments
      devShells = forEachSupportedSystem ({ pkgs }: {
        default = pkgs.mkShell {
          # Pinned packages available in the environment
          packages = with pkgs; [ nixpkgs-fmt ];
        };
      });
    };

It would be better to add it to the formatter output instead (or in addition to).

  # Flake outputs that other flakes can use
  outputs = { self, flake-schemas, nixpkgs }:
    let
      # Helpers for producing system-specific outputs
      supportedSystems = [ "x86_64-linux" "aarch64-linux" ];
      forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f {
        pkgs = import nixpkgs { inherit system; };
      });
    in
    {
      # Schemas tell Nix about the structure of your flake's outputs
      schemas = flake-schemas.schemas;

      # Formatter for nix files (run `nix fmt`)
      formatter = forEachSupportedSystem ({ pkgs }: pkgs.nixpkgs-fmt);

      # Development environments
      devShells = forEachSupportedSystem ({ pkgs }: {
        default = pkgs.mkShell {
          # Pinned packages available in the environment
          packages = with pkgs; [ nixpkgs-fmt ];
        };
      });
    };