{ config, lib, pkgs, ... }: with lib; let pCfg = config.packages.thermoprint; in { options = { packages.thermoprint = { enable = mkEnableOption "thermoprint packages"; extraServerPackages = mkOption { type = types.unspecified; default = p: []; }; }; }; config = mkIf pCfg.enable { nixpkgs.overlays = [(selfPkgs: superPkgs: { haskellPackages = superPkgs.haskellPackages.extend (selfH: superH: import ./thermoprint { callPackage = superPkgs.lib.callPackageWith (selfH // { inherit (superPkgs) stdenv makeWrapper runCommand; }); extraPackages = pCfg.extraServerPackages; } ); inherit (selfPkgs.haskellPackages) thermoprint-server thermoprint-webgui tprint; })]; }; }