use pyproject.toml

This commit is contained in:
Prunebutt 2025-09-27 15:51:47 +02:00
parent b421e330f4
commit 465a5574b8
5 changed files with 166 additions and 85 deletions

View file

@ -1,59 +1,60 @@
{
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;
};
in {
devShells.${system}.default = pkgs.mkShell {
packages = with pkgs; [
python313
python313Packages.flask
python313Packages.waitress
];
shellHook = ''
python --version
exec zsh
'';
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-script";
name = "scanbuddy";
runtimeInputs = with pkgs; [sane-backends brscan5 ghostscript];
text = builtins.readFile ./scanbuddy.bash;
};
wrapper = pkgs.writeShellApplication {
name = "scanbuddy-wrapper";
text =
/*
bash
*/
''
#!/usr/bin/env bash
readarray -d '_' args < <(printf "%s" "$1")
scanbuddy "''${args[@]}"
'';
};
package = pkgs.symlinkJoin {
name = "scanbuddy";
paths = [scanbuddy wrapper];
};
# 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 = package;
default = pkgs.symlinkJoin {
name = "scanbuddy";
paths = [scanbuddy server];
};
inherit scanbuddy;
inherit wrapper;
inherit server;
};
};
}