flake/projects/koboldai/default.nix

43 lines
1 KiB
Nix

{ config, inputs, lib, withSystem, ... }:
{
perSystem = { config, pkgs, ... }: let
inherit (config.dependencySets) aipython3-amd aipython3-nvidia;
src = inputs.koboldai-src;
mkKoboldAIVariant = args: pkgs.callPackage ./package.nix ({ inherit src; } // args);
in {
packages = {
koboldai-nvidia = mkKoboldAIVariant {
aipython3 = aipython3-nvidia;
};
koboldai-amd = mkKoboldAIVariant {
aipython3 = aipython3-amd;
};
};
};
flake.nixosModules = let
packageModule = pkgAttrName: { pkgs, ... }: {
services.koboldai.package = withSystem pkgs.system (
{ config, ... }: lib.mkOptionDefault config.packages.${pkgAttrName}
);
};
in {
koboldai = ./nixos;
koboldai-amd = {
imports = [
config.flake.nixosModules.koboldai
(packageModule "koboldai-amd")
];
};
koboldai-nvidia = {
imports = [
config.flake.nixosModules.koboldai
(packageModule "koboldai-nvidia")
];
};
};
}