diff --git a/flake.nix b/flake.nix index 68f2d4a..ef20b2b 100644 --- a/flake.nix +++ b/flake.nix @@ -6,21 +6,31 @@ outputs = { self, nixpkgs, - }: { - packages = { - x86_64-linux = let pkgs = nixpkgs.legacyPackages.x86_64-linux; in { default = pkgs.callPackage ./nix/package.nix {}; }; - aarch64-linux = let pkgs = nixpkgs.legacyPackages.aarch64-linux; in { default = pkgs.callPackage ./nix/package.nix {}; }; - x86_64-darwin = let pkgs = nixpkgs.legacyPackages.x86_64-darwin; in { default = pkgs.callPackage ./nix/package.nix {}; }; - aarch64-darwin = let pkgs = nixpkgs.legacyPackages.aarch64-darwin; in { default = pkgs.callPackage ./nix/package.nix {}; }; + }: let + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + + forEachSystem = f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system}); + in { + nixosModules = { + troutbot = import ./nix/modules/nixos.nix self; + default = self.nixosModules.troutbot; }; - devShells = { - x86_64-linux = let pkgs = nixpkgs.legacyPackages.x86_64-linux; in { default = pkgs.mkShell { packages = [pkgs.nodejs-slim_22 pkgs.pnpm]; }; }; - aarch64-linux = let pkgs = nixpkgs.legacyPackages.aarch64-linux; in { default = pkgs.mkShell { packages = [pkgs.nodejs-slim_22 pkgs.pnpm]; }; }; - x86_64-darwin = let pkgs = nixpkgs.legacyPackages.x86_64-darwin; in { default = pkgs.mkShell { packages = [pkgs.nodejs-slim_22 pkgs.pnpm]; }; }; - aarch64-darwin = let pkgs = nixpkgs.legacyPackages.aarch64-darwin; in { default = pkgs.mkShell { packages = [pkgs.nodejs-slim_22 pkgs.pnpm]; }; }; - }; + packages = forEachSystem (pkgs: { + troutbot = pkgs.callPackage ./nix/package.nix {}; + default = self.packages.${pkgs.hostPlatform.system}.troutbot; + }); - nixosModules.troutbot = import ./nix/modules/nixos.nix self; + devShells = forEachSystem (pkgs: { + default = pkgs.mkShell { + name = "troutbot-dev"; + packages = [pkgs.nodejs-slim pkgs.pnpm]; + }; + }); }; }