{ description = "Personal Infrastructure stuff?"; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; impermanence.url = "github:nix-community/impermanence"; agenix.url = "github:ryantm/agenix"; }; outputs = {self, nixpkgs, impermanence, agenix}: let customPackagesModule = {...}: { nixpkgs.overlays = [ (super: self: { logo = super.callPackage ./lib/pkgs/logo { }; }) (super: self: { config-archive = super.callPackage ./lib/pkgs/config-archive.nix { }; }) (super: self: { zoekt = super.callPackage ./lib/pkgs/zoekt.nix { }; }) ]; }; forAllSystems = fun: nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-darwin" ] (system: fun system); in { nixosConfigurations = { fugitive = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ customPackagesModule impermanence.outputs.nixosModules.impermanence agenix.nixosModules.default ./lib/systems/fugitive ]; }; outpost = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ agenix.nixosModules.default ./lib/systems/outpost ]; }; monument = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ { system.image.version = "1"; } ./lib/modules/raspberry.nix ./lib/systems/monument ]; }; }; packages = forAllSystems (system: let pkgs = nixpkgs.legacyPackages.${system}; in { zoekt = pkgs.callPackage ./lib/pkgs/zoekt.nix { }; } ); devShells = forAllSystems (system: let pkgs = nixpkgs.legacyPackages.${system}; in { default = with pkgs; mkShell { buildInputs = [ nixos-rebuild agenix.packages.${system}.default ]; }; }); }; }