hive.nix (view raw)
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 | let
inherit (builtins) getFlake;
path = ./overlays;
content = builtins.readDir path;
overlays = map (n: import (path + ("/" + n)))
(builtins.filter
(n:
(builtins.match ".*\\.nix" n != null &&
# ignore Emacs lock files (.#foo.nix)
builtins.match "\\.#.*" n == null) ||
builtins.pathExists (path + ("/" + n + "/default.nix")))
(builtins.attrNames content));
in
{
meta = {
nixpkgs = import <nixpkgs> {
inherit overlays;
};
specialArgs = {
srvos = import <srvos>;
};
};
defaults = { pkgs, ... }: {
deployment = {
buildOnTarget = true;
};
};
linde = { name, nodes, srvos, ... }: {
deployment.allowLocalDeployment = true;
imports = [
srvos.nixosModules.server
srvos.nixosModules.hardware-hetzner-cloud-arm
<agenix/modules/age.nix>
(getFlake (toString <searchix>)).nixosModules.web
(getFlake (toString <mycal>)).nixosModules.mycal
(getFlake (toString <golink>)).nixosModules.default
./packages/modules/nixos/laminar.nix
./private/calendar.nix
./system/linde.nix
];
nixpkgs.overlays = [
(final: prev: {
searchix = (getFlake (toString <searchix>)).packages.${prev.system}.default;
})
];
};
}
|