summaryrefslogtreecommitdiff
path: root/custom/thermoprint-service.nix
blob: 69d9af6ab79a4020c644167074e904590aaaa41b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{ 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: {
      haskell = superPkgs.haskell // {
        packages = superPkgs.haskell.packages // {
          ghc822 = superPkgs.haskell.packages.ghc822.extend (selfH: superH:
            import ./thermoprint {
              callPackage = superPkgs.lib.callPackageWith (selfH // { inherit (superPkgs) stdenv makeWrapper runCommand; });
              extraPackages = pCfg.extraServerPackages;
            }
          );
        };
      };

      inherit (selfPkgs.haskell.packages.ghc822) thermoprint-server thermoprint-webgui tprint;
    })];
  };
}