diff --git a/modules/meta/access.nix b/modules/meta/access.nix deleted file mode 100644 index 4e2e1051..00000000 --- a/modules/meta/access.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - config, - access, - ... -}: let - nixosModule = { - config, - ... - }: { - config = { - _module.args.access = access // { - systemFor = hostName: if hostName == config.networking.hostName - then config - else access.systemFor hostName; - systemForOrNull = hostName: if hostName == config.networking.hostName - then config - else access.systemForOrNull hostName; - }; - }; - }; -in { - config = { - network.nixos.extraModules = [ - nixosModule - ]; - - _module.args.access = { - systemFor = hostName: config.network.nodes.${hostName}; - systemForOrNull = hostName: config.network.nodes.${hostName} or null; - }; - }; -} diff --git a/modules/meta/imports.nix b/modules/meta/imports.nix deleted file mode 100644 index 57f35e65..00000000 --- a/modules/meta/imports.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - config, - lib, - meta, - root, - ... -}: -with lib; { - options = { - lib = mkOption { - type = types.attrsOf (types.attrsOf types.unspecified); - }; - network.importing = { - nixosImports = mkOption { - type = types.listOf types.str; - }; - }; - }; - config = { - network.importing = { - nixosImports = mkDefault (map toString [ - (root + "/nixos/systems/HN.nix") - (root + "/nixos/systems/HN/nixos.nix") - ]); - }; - lib.nixfiles.nixosImport = hostName: - lib.nodeImport { - inherit (config.network.importing) nixosImports; - profiles = meta.nixos; - homeImports = []; - users = []; - inherit hostName; - }; - _module.args = {inherit (config.lib) nixfiles;}; - }; -} diff --git a/modules/meta/network.nix b/modules/meta/network.nix deleted file mode 100644 index bdb3e01c..00000000 --- a/modules/meta/network.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ - pkgs, - inputs, - lib, - meta, - config, - ... -}@metaArgs: let -/* - This module: -* Makes hosts nixosModules. -* Manages module imports and specialArgs. -* Builds network.nodes. -*/ - enableNixosBuilder = false; -in with lib; { - options.network = { - nixos = { - extraModules = mkOption { - type = types.listOf types.unspecified; - default = []; - }; - specialArgs = mkOption { - type = types.attrsOf types.unspecified; - default = {}; - }; - modulesPath = mkOption { - type = types.path; - default = toString (pkgs.path + "/nixos/modules"); - }; - builder = mkOption { - type = types.unspecified; - }; - }; - nodes = let - nixosModule = { - name, - config, - meta, - modulesPath, - lib, - ... - }: - with lib; { - options = { - nixpkgs.crossOverlays = mkOption { - type = types.listOf types.unspecified; - default = []; - }; - }; - config = { - nixpkgs = { - system = mkDefault "x86_64-linux"; - pkgs = let - pkgsReval = import pkgs.path { - inherit (config.nixpkgs) localSystem crossSystem crossOverlays; - inherit (pkgs) overlays config; - }; - in - mkDefault ( - if config.nixpkgs.config == pkgs.config && config.nixpkgs.system == pkgs.targetPlatform.system - then pkgs - else pkgsReval - ); - }; - }; - }; - nixosType = let - baseModules = import (config.network.nixos.modulesPath + "/module-list.nix"); - in - types.submoduleWith { - modules = - baseModules - ++ singleton nixosModule - ++ config.network.nixos.extraModules; - - specialArgs = - { - inherit baseModules; - inherit (config.network.nixos) modulesPath; - } - // config.network.nixos.specialArgs; - }; - in - mkOption { - type = types.lazyAttrsOf ( - if enableNixosBuilder then types.unspecified else nixosType - ); - default = {}; - }; - }; - config.network = { - nixos = { - extraModules = [ - meta.modules.nixos - ]; - specialArgs = { - inherit (config.network) nodes; - inherit inputs meta pkgs; - }; - builder = mkOptionDefault ({ - pkgs ? metaArgs.pkgs, - system ? pkgs.system, - lib ? if args ? pkgs then pkgs.lib else metaArgs.lib, - nixosSystem ? import (pkgs.path + "/nixos/lib/eval-config.nix"), - baseModules ? import (modulesPath + "/module-list.nix"), - modulesPath ? toString (pkgs.path + "/nixos/modules"), - specialArgs ? config.network.nixos.specialArgs, - extraModules ? config.network.nixos.extraModules, - imports ? [ ], - name, - ... - }@args: let - args' = builtins.removeAttrs args [ - "extraModules" "specialArgs" "modulesPath" "baseModules" "lib" "pkgs" "system" "imports" "name" - ]; - c = nixosSystem ({ - inherit lib baseModules extraModules pkgs system; - modules = imports; - specialArgs = - { - inherit baseModules name; - inherit (config.network.nixos) modulesPath; - } - // config.network.nixos.specialArgs; - } // args'); - in if enableNixosBuilder then c.config else { - inherit imports; - }); - }; - }; -} diff --git a/modules/meta/networks.nix b/modules/meta/networks.nix deleted file mode 100644 index 6da82257..00000000 --- a/modules/meta/networks.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; { - options = { - networks = mkOption { - type = with types; - attrsOf (submodule ({ - name, - config, - ... - }: { - options = { - member_configs = mkOption { - type = unspecified; - }; - members = mkOption { - type = unspecified; - }; - }; - })); - }; - }; - config = { - networks = let - names = ["gensokyo" "chitei" "internet" "tailscale"]; - network_filter = network: rec { - member_configs = filterAttrs (_: nodeConfig: nodeConfig.networks.${network}.interfaces != []) config.network.nodes; - members = mapAttrs (_: nodeConfig: nodeConfig.networks.${network}) member_configs; - }; - networks' = genAttrs names network_filter; - in - networks'; - }; -} diff --git a/modules/meta/packages.nix b/modules/meta/packages.nix deleted file mode 100644 index 2ba9f97c..00000000 --- a/modules/meta/packages.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - inherit (lib.options) mkOption; - inherit (lib.types) attrsOf package; - inherit (lib.meta) getExe; - inherit (lib.strings) concatStringsSep concatMapStringsSep; - cfg = config.outputs.packages; - fmt = import ../../ci/fmt.nix; -in { - options.outputs.packages = mkOption { - type = attrsOf package; - default = { }; - }; - - config.outputs.packages = { - inherit (pkgs.buildPackages) - terraform tflint - alejandra deadnix statix - ; - nf-deploy = pkgs.writeShellScriptBin "nf-deploy" '' - exec ${pkgs.runtimeShell} ${../../ci/deploy.sh} "$@" - ''; - nf-statix = pkgs.writeShellScriptBin "nf-statix" '' - if [[ $# -eq 0 ]]; then - set -- check - fi - - if [[ ''${1-} = check ]]; then - shift - set -- check --config ${../../ci/statix.toml} "$@" - fi - - exec ${getExe cfg.statix} "$@" - ''; - nf-deadnix = let - inherit (fmt.nix) blacklistDirs; - excludes = "${getExe pkgs.buildPackages.findutils} ${concatStringsSep " " blacklistDirs} -type f"; - in pkgs.writeShellScriptBin "nf-deadnix" '' - exec ${getExe cfg.deadnix} "$@" \ - --no-lambda-arg \ - --exclude $(${excludes}) - ''; - nf-alejandra = let - inherit (fmt.nix) blacklistDirs; - excludes = concatMapStringsSep " " (dir: "--exclude ${dir}") blacklistDirs; - in pkgs.writeShellScriptBin "nf-alejandra" '' - exec ${getExe cfg.alejandra} \ - ${excludes} \ - "$@" - ''; - nf-lint-tf = pkgs.writeShellScriptBin "nf-lint-tf" '' - ${getExe cfg.terraform} fmt "$@" && - ${cfg.tflint}/bin/tflint - ''; - nf-lint-nix = pkgs.writeShellScriptBin "nf-lint-nix" '' - ${getExe cfg.nf-statix} check "$@" && - ${getExe cfg.nf-deadnix} -f "$@" - ''; - nf-fmt-nix = let - inherit (fmt.nix) whitelist; - includes = concatStringsSep " " whitelist; - in pkgs.writeShellScriptBin "nf-fmt-nix" '' - exec ${getExe cfg.nf-alejandra} ${includes} "$@" - ''; - }; -}