{ description = "Application packaged using poetry2nix"; inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.nixpkgs.url = "github:NixOS/nixpkgs"; inputs.poetry2nixSrc = { url = "github:nix-community/poetry2nix"; inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, flake-utils, poetry2nixSrc }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; poetry2nix = poetry2nixSrc.lib.mkPoetry2Nix { inherit pkgs; }; kalpaaApp = poetry2nix.mkPoetryApplication { projectDir = self; python = pkgs.python39; preferWheels = true; }; kalpaaEnv = poetry2nix.mkPoetryEnv { projectDir = self; python = pkgs.python39; preferWheels = true; overrides = poetry2nix.overrides.withDefaults (self: super: { }); }; kalpaa-docker-image = pkgs.dockerTools.buildLayeredImage { name = "kalpaa"; tag = "latest"; contents = [ # some stuff that dockertools provides? # pkgs.dockerTools.usrBinEnv # pkgs.dockerTools.binSh # pkgs.dockerTools.caCertificates # pkgs.dockerTools.fakeNss pkgs.bash pkgs.coreutils # pkgs.cacert # pkgs.gnutar # pkgs.gzip # pkgs.gnused # pkgs.gnugrep pkgs.uv kalpaaApp ]; config = { Cmd = [ "/bin/bash" ]; Env = [ "PATH=/bin" ]; WorkingDir = "/workspace"; }; }; in { packages = { inherit kalpaaEnv; inherit kalpaaApp; inherit kalpaa-docker-image; default = self.packages.${system}.kalpaaEnv; }; devShells.default = pkgs.mkShell { inputsFrom = [ self.packages.${system}.kalpaaEnv ]; buildInputs = [ pkgs.poetry self.packages.${system}.kalpaaEnv self.packages.${system}.kalpaaApp pkgs.just pkgs.nodejs ]; shellHook = '' export DO_NIX_CUSTOM=1 ''; }; } ); }