summaryrefslogtreecommitdiff
path: root/flake.nix
blob: d893fb822f3f1af13081645a4e874f3e82bc6656 (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
{
  inputs.devenv = {
    url = "github:cachix/devenv";
    inputs.nixpkgs.url = "nixpkgs";
  };

  outputs = {
    self,
    nur,
    nixpkgs,
    flake-parts,
    devenv,
    ...
  } @ inputs:
    flake-parts.lib.mkFlake {inherit inputs;} {
      imports = [flake-parts.flakeModules.easyOverlay devenv.flakeModule];
      systems = ["x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];

      flake = {
        devenvModules.personal = import ./modules/devenv;
        nixosModules.personal = import ./modules/nixos;
        homeModules.personal = import ./modules/home-manager;
        overlays.personal = self.overlays.default;
      };

      perSystem = {
        config,
        system,
        pkgs,
        lib,
        ...
      }: {
        _module.args.pkgs = import nixpkgs {
          inherit system;
          overlays = [nur.overlay];
          config = {};
        };

        overlayAttrs = {
          inherit
            (lib.recursiveUpdate pkgs {
              personal = config.packages;
              lib.personal = config.packages.lib;
            })
            personal
            lib
            ;
        };
        packages = import ./pkgs pkgs;

        devenv.shells.default = {
          imports = [self.devenvModules.personal];
          languages.nix.enable = true;
        };
      };
    };
}