aboutsummaryrefslogtreecommitdiffstats
path: root/flake.nix
blob: f0afc44b6dcd70cdefeedf5fafc063ae12710129 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{
  description = "Domino's flakes";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";

    flake-parts = {
      url = "github:hercules-ci/flake-parts";
    };

    treefmt-nix.url = "github:numtide/treefmt-nix";
  };

  outputs = 
    { self, 
      nixpkgs,
      flake-parts,
      treefmt-nix,
      ... 
    }@inputs:
    flake-parts.lib.mkFlake { inherit inputs; } {
      systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];

      perSystem =
        { pkgs, system, ... }:
          let
            treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
          in
          {
            # This sets `pkgs` to a nixpkgs with allowUnfree option set.
            _module.args.pkgs = import nixpkgs {
              inherit system;
              config.allowUnfree = true;
            };

            # nix build
            packages = {
              hello = pkgs.hello;
              default = pkgs.hello;
            };

            devShells = 
              {
                default = pkgs.mkShell {
                  packages = with pkgs; [
                    erlang_28
                    erlang-language-platform
                    rebar3
                  ];
                };
              };

            # nix fmt
            formatter = treefmtEval.config.build.wrapper;

            # nix flake check --all-systems
            checks = {
              formatting = treefmtEval.config.build.check self;
            };
          };
    };
}