aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
blob: 9e0a9bd9112d3afa056dffb89b0017d86a5a31b6 (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
68
69
70
71
72
{
  description = "Cynerd's personal flake";

  inputs = {
    nixpkgs.url = "nixpkgs/nixos-unstable-small";
    nixos-hardware.url = "nixos-hardware";
    nixdeploy.url = "gitlab:cynerd/nixdeploy";
    personal-secret.url = "git+ssh://git@cynerd.cz/nixos-personal-secret";

    agenix.url = "github:ryantm/agenix";
    shvspy.url = "git+https://github.com/silicon-heaven/shvspy.git?submodules=1";
    flatline.url = "git+https://gitlab.elektroline.cz/elektroline/flatlineng.git?submodules=1";
    shvcli.url = "github:silicon-heaven/shvcli";

    nixturris.url = "gitlab:cynerd/nixturris";
    nixbigclown.url = "github:cynerd/nixbigclown";
    vpsadminos.url = "github:vpsfreecz/vpsadminos";

    shellrc.url = "git+https://git.cynerd.cz/shellrc";
    usbkey.url = "gitlab:cynerd/usbkey";
  };

  outputs = {
    self,
    nixpkgs,
    flake-utils,
    agenix,
    shvspy,
    flatline,
    shvcli,
    nixdeploy,
    shellrc,
    usbkey,
    ...
  }: let
    inherit (flake-utils.lib) eachDefaultSystem filterPackages;
    inherit (nixpkgs.lib) mapAttrs' nameValuePair filterAttrs;
  in
    {
      lib = import ./lib nixpkgs.lib;
      overlays = {
        noInherit = final: prev: import ./pkgs final prev;
        default = nixpkgs.lib.composeManyExtensions [
          agenix.overlays.default
          shvspy.overlays.default
          flatline.overlays.default
          shvcli.overlays.default
          nixdeploy.overlays.default
          shellrc.overlays.default
          usbkey.overlays.default
          self.overlays.noInherit
        ];
      };
      nixosModules = import ./nixos self;
      nixosConfigurations = import ./nixos/configurations.nix self;
    }
    // eachDefaultSystem (system: let
      pkgs = nixpkgs.legacyPackages."${system}".extend self.overlays.default;
    in {
      packages = {
        default = pkgs.nixdeploy;
      } // mapAttrs' (n: v:
        nameValuePair
        "tarball-${n}"
        v.buildPlatform.${system}.config.system.build.tarball) (filterAttrs
        (n: v: v.config.system.build ? tarball)
        self.nixosConfigurations);
      legacyPackages = pkgs;
      devShells = filterPackages system (import ./devShells pkgs);
      formatter = pkgs.alejandra;
    });
}