{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; pyproject-nix = { url = "github:nix-community/pyproject.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, ... } @ inputs: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; python = pkgs.python3; serverProject = inputs.pyproject-nix.lib.project.loadPyproject { projectRoot = ./.; }; in { # devShells.${system}.default = pkgs.mkShell { # packages = with pkgs; [ # python313 # python313Packages.flask # python313Packages.waitress # ]; # # shellHook = '' # python --version # exec zsh # ''; # }; packages.${system} = let scanbuddy = pkgs.writeShellApplication { name = "scanbuddy"; runtimeInputs = with pkgs; [sane-backends brscan5 ghostscript]; text = builtins.readFile ./scanbuddy.bash; }; # Returns an attribute set that can be passed to `buildPythonPackage`. attrs = serverProject.renderers.buildPythonPackage {inherit python;}; server = python.pkgs.buildPythonPackage (attrs // { env.CUSTOM_ENVVAR = "foobar"; }); in { default = pkgs.symlinkJoin { name = "scanbuddy"; paths = [scanbuddy server]; }; inherit scanbuddy; inherit server; }; }; }