From 3592da8ab89f8e2674317252bd3de2f9e647e31b Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 9 Nov 2026 13:31:45 +0000 Subject: legacy.nix: init --- legacy.nix | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 legacy.nix (limited to 'legacy.nix') diff --git a/legacy.nix b/legacy.nix new file mode 100644 index 0000000..270edff --- /dev/null +++ b/legacy.nix @@ -0,0 +1,132 @@ +{ inputs ? rec { + nixpkgs.lib = import // { + nixosSystem = import ; + }; + + stockholm.overlays.default = import ; + stockholm.inputs.nix-writers = ; + stockholm.nixosModules = + let + inherit (nixpkgs) lib; + in builtins.listToAttrs + (map + # to preserve the file name for debugability, don't import here + (name: {name = lib.removeSuffix ".nix" name; value = ( + "/${name}");}) + (lib.filter + (name: name != "default.nix" && !lib.hasPrefix "." name) + (lib.attrNames (builtins.readDir )))); + } +, extraModules ? [] +}: { + nixosConfigurations = + inputs.nixpkgs.lib.mapAttrs + (name: _: let + minimal.enable = + name == "oai"; + + system = (import ./systems/${name}/spec.nix).system; + in + inputs.nixpkgs.lib.nixosSystem { + inherit system; + specialArgs = rec { + inherit inputs; + + lib = inputs.nixpkgs.lib // { + # for stockholm. + # without it krebs.hosts.*.nets.*.prefix breaks for ne + # due to patched types. + slib = mylib; + }; + + mylib = (import ./. { inherit lib; }).mylib // { + importSecret = + p: _: {}; + }; + }; + modules = [ + ({ lib, ... }: { + _file = "${toString ./legacy.nix} #1"; + imports = lib.optionals minimal.enable [ + (./systems + "/${name}/config.nix") + ]; + }) + ({ lib, mylib, ... }: { + _file = "${toString ./legacy.nix} #2"; + imports = lib.optionals (!minimal.enable) [ + (./systems + "/${name}/config.nix") + (let dirt = ./systems + "/${name}/dirt"; in + if builtins.pathExists dirt then dirt else {}) + { + _file = "${toString ./legacy.nix} #2.1"; + imports = [ + inputs.stockholm.nixosModules.build + inputs.stockholm.nixosModules.dns + inputs.stockholm.nixosModules.exim + inputs.stockholm.nixosModules.exim-retiolum + inputs.stockholm.nixosModules.exim-smarthost + inputs.stockholm.nixosModules.github + inputs.stockholm.nixosModules.hosts + inputs.stockholm.nixosModules.htgen + inputs.stockholm.nixosModules.kartei + inputs.stockholm.nixosModules.krebs + inputs.stockholm.nixosModules.nixpkgs + inputs.stockholm.nixosModules.on-failure + inputs.stockholm.nixosModules.iana-etc + inputs.stockholm.nixosModules.per-user + inputs.stockholm.nixosModules.permown + inputs.stockholm.nixosModules.repo-sync + inputs.stockholm.nixosModules.secret + inputs.stockholm.nixosModules.setuid + inputs.stockholm.nixosModules.shadow + inputs.stockholm.nixosModules.sitemap + inputs.stockholm.nixosModules.ssh + inputs.stockholm.nixosModules.systemd + inputs.stockholm.nixosModules.tinc + inputs.stockholm.nixosModules.users + inputs.stockholm.nixosModules.zones + ]; + nixpkgs.overlays = [ + (import (inputs.stockholm.inputs.nix-writers + "/pkgs")) + (self: super: { + stockholm.lib.types = lib.types // { + inherit (mylib.types) + hostname + secret-file + ; + }; + inherit (inputs.stockholm.overlays.default self super) + brain + cgit-clear-cache + git-hooks + htgen + htgen-imgur + htgen-paste + irc-announce + painload + repo-sync + ; + }) + ]; + } + ./configs + ./modules + { imports = extraModules; } + # This must come before . And before means after, `imports`-wise. + ({ inputs, mylib, ... }: { + nixpkgs.overlays = [ + (self: super: { + inherit mylib; + }) + + (import (inputs.stockholm.inputs.nix-writers + "/pkgs")) + + (import ./pkgs) + ]; + }) + ]; + }) + ]; + } + ) + (builtins.readDir ./systems); +} -- cgit v1.3.1