{ inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; }; nixConfig = { extra-substituters = [ "https://cache.kyouma.net" ]; extra-trusted-public-keys = [ "cache.kyouma.net:Frjwu4q1rnwE/MnSTmX9yx86GNA/z3p/oElGvucLiZg=" ]; }; outputs = { self, nixpkgs, ... }@inputs: let inherit (builtins) mapAttrs; inherit (nixpkgs) lib; platforms = mapAttrs (name: platform: lib.systems.elaborate platform) (import ./platforms.nix); in { lib = { inherit platforms; }; overlays.default = import ./overlay.nix inputs; nixosModules.default = { ... }: { nixpkgs = { overlays = [ self.overlays.default ]; config = { allowUnsupportedSystem = true; replaceStdenv = { pkgs }: pkgs.idiosyn pkgs.stdenv; replaceCrossStdenv = { buildPackages, baseStdenv }: buildPackages.idiosyn baseStdenv; }; }; imports = [ ./module.nix ]; }; nixosConfigurations = mapAttrs (system: platform: lib.nixosSystem { modules = [ self.nixosModules.default ./nixos.nix { nixpkgs = { buildPlatform = builtins.currentSystem or system; hostPlatform = platform; }; } ]; }) platforms; hydraJobs = { nixosConfigurations = mapAttrs (name: host: host.config.system.build.toplevel) self.nixosConfigurations; }; }; }