{ description = "A basic flake using pyproject.toml project metadata"; inputs = { pyproject-nix = { url = "github:nix-community/pyproject.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, pyproject-nix, ... }: let inherit (nixpkgs) lib; project = pyproject-nix.lib.project.loadPyproject { # Read & unmarshal pyproject.toml relative to this project root. # projectRoot is also used to set `src` for renderers such as buildPythonPackage. projectRoot = ./.; }; # This example is only using x86_64-linux pkgs = nixpkgs.legacyPackages.x86_64-linux; python = pkgs.python3; # Returns an attribute set that can be passed to `buildPythonPackage`. attrs = project.renderers.buildPythonPackage { inherit python; }; pkg = python.pkgs.buildPythonPackage (attrs // { meta = { description = "Webinterface for map.node5.net"; homepage = "https://map.node5.net/"; changelog = "https://git.node5.net/map.node5.net/log/"; mainProgram = "node5-map"; }; propagatedBuildInputs = (attrs.propagatedBuildInputs or []) ++ [ pkgs.git ]; # Make git binary available postInstall = '' echo $src echo $out cp -r $src/src/static/ $out/${python.sitePackages} cp -r $src/src/templates/ $out/${python.sitePackages} ''; }); # Add missing templates and static content, that wasn't auto discovered by the python build process in { packages.x86_64-linux.default = pkg; pythonPath = "${python.pkgs.makePythonPath attrs.dependencies}:${pkg}/${python.sitePackages}"; }; }