63 lines
1.9 KiB
Nix
63 lines
1.9 KiB
Nix
|
{
|
||
|
inputs = {
|
||
|
darknet = {
|
||
|
url = "github:pjreddie/darknet";
|
||
|
flake = false;
|
||
|
};
|
||
|
nixpkgs.url = "nixpkgs/nixos-22.11";
|
||
|
utils.url = "github:numtide/flake-utils";
|
||
|
};
|
||
|
|
||
|
outputs = { self, nixpkgs, darknet, utils, ... }:
|
||
|
utils.lib.eachDefaultSystem (system:
|
||
|
let
|
||
|
pkgs = nixpkgs.legacyPackages."${system}";
|
||
|
pythonYolo = pkgs.python3.withPackages
|
||
|
(pyPkgs: with pyPkgs; [ fastapi opencv4 python-multipart ]);
|
||
|
in {
|
||
|
packages = rec {
|
||
|
objectifier = pkgs.callPackage ./objectifier.nix { };
|
||
|
yolo-cli = pkgs.callPackage ./yolo-cli.nix { inherit yolov3-data; };
|
||
|
yolov3-data = pkgs.callPackage ./yolo-data.nix { inherit darknet; };
|
||
|
};
|
||
|
|
||
|
devShells = {
|
||
|
default = pkgs.mkShell {
|
||
|
buildInputs = let
|
||
|
pythonYolo = pkgs.python3.withPackages (pyPkgs:
|
||
|
with pyPkgs; [
|
||
|
fastapi
|
||
|
gunicorn
|
||
|
opencv4
|
||
|
python-multipart
|
||
|
uvicorn
|
||
|
]);
|
||
|
in [ pythonYolo ];
|
||
|
};
|
||
|
yolo-cli = pkgs.mkShell {
|
||
|
buildInputs = [ self.packages."${system}".yolo-cli ];
|
||
|
};
|
||
|
};
|
||
|
}) // {
|
||
|
nixosModules = rec {
|
||
|
default = objectifier;
|
||
|
objectifier = {
|
||
|
imports = [ ./objectifier-module.nix ];
|
||
|
config.nixpkgs.settings.overlays = [ self.overlays.objectifier ];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
overlays = rec {
|
||
|
default = final: prev: {
|
||
|
inherit (self.packages."${prev.system}") objectifier yolo-cli;
|
||
|
};
|
||
|
objectifier = final: prev: {
|
||
|
inherit (self.packages."${prev.system}") objectifier;
|
||
|
};
|
||
|
yolo-cli = final: prev: {
|
||
|
inherit (self.packages."${prev.system}") yolo-cli;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|