objectifier/objectifier.nix

40 lines
836 B
Nix

{ pkgs, lib, ... }:
let
objectifier-src = pkgs.stdenv.mkDerivation {
name = "objectifier";
src = ./src;
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out
cp $src/detector.py $out/detector.py
cp $src/objectifier.py $out/objectifier.py
'';
};
pythonYolo = pkgs.python3.withPackages (pyPkgs:
with pyPkgs; [
gunicorn
fastapi
gunicorn
opencv4
python-multipart
uvicorn
]);
in pkgs.writeShellApplication {
name = "objectifier";
runtimeInputs = [ pythonYolo ];
text = let
script = pkgs.lib.concatStringsSep " " [
"gunicorn"
"objectifier:app"
"-k uvicorn.workers.UvicornWorker"
''"$@"''
];
in ''
export CACHE_DIRECTORY STATE_DIRECTORY
export PYTHONPATH="${objectifier-src}"
${script}
'';
}