at main 2.2 kB view raw
1{ 2 withSystem, 3 self, 4 nixpkgs, 5 inputs, 6 ... 7}: 8{ 9 systems = [ 10 "x86_64-linux" 11 "aarch64-linux" 12 ]; 13 14 imports = [ ../systems/default.nix ]; 15 16 perSystem = 17 { pkgs, ... }: 18 { 19 packages = { 20 pokego = pkgs.callPackage ./pkgs/pokego.nix { }; 21 http-nu = pkgs.callPackage ./pkgs/http-nu.nix { }; 22 topiary-nu = pkgs.callPackage ./pkgs/topiary-nu.nix { }; 23 atproto-lastfm-importer = pkgs.callPackage ./pkgs/atproto-lastfm-importer.nix { }; 24 multi-scrobbler = pkgs.callPackage ./pkgs/multi-scrobbler.nix { }; 25 26 wakuna-image = self.lib.sdImageFromSystem self.nixosConfigurations.wakuna; 27 }; 28 checks = { 29 pds-simple = pkgs.callPackage ./pds/pds-recovery-simple.nix { inherit (inputs) nixpkgs; }; 30 pds-full = pkgs.callPackage ./pds/pds-recovery-full.nix { inherit (inputs) nixpkgs; }; 31 }; 32 formatter = pkgs.nixfmt; 33 devShells.default = pkgs.mkShell { packages = with pkgs; [ sops ]; }; 34 }; 35 36 flake = 37 let 38 inherit (nixpkgs) lib; 39 in 40 { 41 lib = { 42 sdImageFromSystem = system: system.config.system.build.sdImage; 43 44 mkSystem' = 45 system: hostname: 46 withSystem system ( 47 { inputs', self', ... }: 48 lib.nixosSystem { 49 specialArgs = { 50 inherit 51 inputs 52 inputs' 53 self 54 self' 55 ; 56 }; 57 modules = [ 58 { networking.hostName = hostname; } 59 ./core.nix 60 ./systems/${hostname} 61 ]; 62 } 63 ); 64 65 mkSystem = system: hostname: { ${hostname} = self.lib.mkSystem' system hostname; }; 66 mkSystems = system: hosts: lib.mergeAttrsList (map (self.lib.mkSystem system) hosts); 67 }; 68 69 overlays.default = import ./overlays; 70 71 homeModules = { 72 dev = import ./dev/home.nix; 73 desktop = import ./desktop/home.nix; 74 }; 75 76 nixosModules = { 77 dev = import ./dev/nixos.nix; 78 desktop = import ./desktop/nixos.nix; 79 multi-scrobbler = import ./services/multi-scrobbler.nix; 80 pds = import ./pds/nixos.nix; 81 }; 82 }; 83}