diff --git a/templates/poetry/flake.nix b/templates/poetry/flake.nix index d41bb7d..aff2cac 100644 --- a/templates/poetry/flake.nix +++ b/templates/poetry/flake.nix @@ -1,34 +1,50 @@ { description = "Python project flake"; - - inputs.flake-utils.url = "github:numtide/flake-utils"; - inputs.nixpkgs.url = "github:NixOS/nixpkgs"; - inputs.poetry2nix.url = "github:nix-community/poetry2nix"; - + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs"; + poetry2nix.url = "github:nix-community/poetry2nix"; + }; outputs = + { nixpkgs, poetry2nix, ... }: + let + projectDir = ./.; + supportedSystems = [ + "x86_64-linux" + "x86_64-darwin" + "aarch64-linux" + "aarch64-darwin" + ]; + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + in { - self, - nixpkgs, - flake-utils, - poetry2nix, - }: - flake-utils.lib.eachDefaultSystem ( - system: - let - pkgs = import nixpkgs { - inherit system; - overlays = [ poetry2nix.overlay ]; - }; - projectDir = ./.; - in - { - defaultPackage = pkgs.poetry2nix.mkPoetryApplication { inherit projectDir; }; - devShells.default = pkgs.mkShell { - buildInputs = [ - (pkgs.poetry2nix.mkPoetryEnv { inherit projectDir; }) - pkgs.poetry - ]; - }; - } - ); + packages = forAllSystems ( + system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ poetry2nix.overlays.default ]; + }; + in + { + default = pkgs.poetry2nix.mkPoetryApplication { inherit projectDir; }; + } + ); + devShells = forAllSystems ( + system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ poetry2nix.overlays.default ]; + }; + in + { + default = pkgs.mkShell { + buildInputs = [ + (pkgs.poetry2nix.mkPoetryEnv { inherit projectDir; }) + pkgs.poetry + ]; + }; + } + ); + }; }