summaryrefslogtreecommitdiff
path: root/templates/nixos/flake.nix
blob: 6dce551b501eddee8e93706235779191fd213794 (plain)
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
63
64
65
66
67
{
  description = "My cool Nix Flake";

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

    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    flake-parts = {
      url = "github:hercules-ci/flake-parts";
      inputs.nixpkgs-lib.follows = "nixpkgs";
    };

    getchpkgs = {
      url = "github:getchoo/getchpkgs";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs =
    inputs:

    inputs.flake-parts.lib.mkFlake { inherit inputs; } {
      imports = [
        inputs.getchpkgs.flakeModules.configurations
      ];

      systems = [
        "x86_64-linux"
        "aarch64-linux"
        "x86_64-darwin"
        "aarch64-darwin"
      ];

      configurations = {
        nixos = {
          my-machine = {
            # You should already have this file in /etc/nixos
            modules = [ ./configuration.nix ];
          };
        };
      };

      perSystem =
        { pkgs, self', ... }:

        {
          # Use `nix develop` to enter a shell with tools for this repository
          devShells = {
            default = pkgs.mkShellNoCC {
              packages = [
                pkgs.just

                # Lets you run `nixfmt` to format all of your files
                self'.formatter
              ];
            };
          };

          # You can also use `nix fmt`
          formatter = pkgs.nixfmt-rfc-style;
        };
    };
}