secret-santa/default.nix
2025-11-23 22:37:53 +01:00

49 lines
1.2 KiB
Nix

{ pkgs ? import <nixpkgs> { }, src ? ./., subdir ? "" }:
let
theSource = src;
pythonPackage = pkgs.python313Packages.buildPythonPackage {
pname = "secret-santa";
version = "1.0.0";
src = "${theSource}/${subdir}";
buildInputs = [
pkgs.python313Packages.setuptools
pkgs.python313Packages.wheel
];
propagatedBuildInputs = [ pkgs.python313Packages.flask ];
pyproject = true;
build-system = [
pkgs.python313Packages.setuptools
pkgs.python313Packages.wheel
];
meta = {
description = "Secret santa flask package";
license = pkgs.lib.licenses.mit;
};
};
pythonEnv = pkgs.python313.buildEnv.override {
extraLibs = [ pkgs.python313Packages.flask pythonPackage ];
ignoreCollisions = true;
};
in
pkgs.stdenv.mkDerivation rec {
name = "secret-santa";
propagatedBuildInputs = [ pythonEnv ];
src = "${theSource}/${subdir}/src";
installPhase = ''
mkdir -p $out/bin
cat > $out/bin/${name} <<EOF
#!/bin/sh
exec ${pythonEnv}/bin/python3 ${src}/secret_santa/main.py "\$@"
EOF
chmod +x $out/bin/${name}
'';
meta = {
description = "Secret santa server application";
license = pkgs.lib.licenses.mit;
};
}