infrastructure/overlays/print.nix
2024-07-31 11:13:50 -07:00

68 lines
2.3 KiB
Nix

final: prev: let
inherit (final) lib;
in {
cura-octoprint = final.cura.override {
plugins = [final.curaPlugins.octoprint];
};
octoprint = let
mapPlugin = python3Packages: _: plugin:
plugin.override {
inherit python3Packages;
inherit (python3Packages) buildPlugin;
};
packageOverrides = python3Packages: python3Packages'prev:
lib.mapAttrs (mapPlugin python3Packages) {
inherit (final.octoprintPlugins) prometheus-exporter octorant queue printtimegenius;
};
octoprint = prev.octoprint.override (old: {
packageOverrides = lib.composeExtensions old.packageOverrides or (_: _: {}) packageOverrides;
});
in
octoprint;
octoprintPlugins = let
pythonPackages = final.octoprint.python.pkgs;
octoprintPlugins'overlay = final.callPackage (final.path + "/pkgs/applications/misc/octoprint/plugins.nix") {};
octoprintPlugins'nixpkgs = octoprintPlugins'overlay pythonPackages pythonPackages;
octoprintPlugins = prev.octoprintPlugins or octoprintPlugins'nixpkgs;
callPackage = final.newScope {
inherit (final.octoprintPlugins) buildPlugin;
};
in
octoprintPlugins
// {
callPackage = prev.octoprintPlugins.callPackage or callPackage;
prometheus-exporter = callPackage ../packages/octoprint/prometheus-exporter.nix {};
octorant = callPackage ../packages/octoprint/octorant.nix {};
queue = callPackage ../packages/octoprint/queue.nix {};
printtimegenius = let
printtimegenius = {
fetchFromGitHub,
python3Packages,
buildPlugin,
}:
octoprintPlugins.printtimegenius.overrideAttrs (old: rec {
version = lib.warnIf (lib.versionAtLeast old.version "2.3.2") "printtimegenius updated upstream" "2.3.3";
src = fetchFromGitHub {
inherit (old.src) owner repo;
rev = version;
sha256 = "sha256-hqm8RShCNpsVbrVXquat5VXqcVc7q5tn5+7Ipqmaw4U=";
};
});
in
callPackage printtimegenius {};
};
# XXX: build broken upstream ugh...
curaengine = prev.curaengine.override {
inherit (final.python311Packages) libarcus;
};
cura = prev.cura.override {
python3 = final.python311;
};
curaPlugins = prev.curaPlugins.override {
python3Packages = final.python311Packages;
};
}