summaryrefslogtreecommitdiff
path: root/Biz/Dev/Hoogle.nix
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2024-11-15 14:55:37 -0500
committerBen Sima <ben@bsima.me>2024-12-21 10:06:49 -0500
commit6513755670892983db88a6633b8c1ea6019c03d1 (patch)
tree44e9eccdb7a3a74ab7e96a8fee7572dd6a78dc73 /Biz/Dev/Hoogle.nix
parentae7b7e0186b5f2e0dcd4d5fac0a71fa264caedc2 (diff)
Re-namespace some stuff to Omni
I was getting confused about what is a product and what is internal infrastructure; I think it is good to keep those things separate. So I moved a bunch of stuff to an Omni namespace, actually most stuff went there. Only things that are explicitly external products are still in the Biz namespace.
Diffstat (limited to 'Biz/Dev/Hoogle.nix')
-rw-r--r--Biz/Dev/Hoogle.nix81
1 files changed, 0 insertions, 81 deletions
diff --git a/Biz/Dev/Hoogle.nix b/Biz/Dev/Hoogle.nix
deleted file mode 100644
index 213a31c..0000000
--- a/Biz/Dev/Hoogle.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
- cfg = config.services.my-hoogle;
-
- hoogleEnv = pkgs.buildEnv {
- name = "hoogle";
- paths = [ (cfg.haskellPackages.ghcWithHoogle cfg.packages) ];
- };
-
-in {
-
- options.services.my-hoogle = {
- enable = mkEnableOption "Haskell documentation server";
-
- port = mkOption {
- type = types.int;
- default = 8080;
- description = ''
- Port number Hoogle will be listening to.
- '';
- };
-
- packages = mkOption {
- default = _hp: [ ];
- defaultText = "hp: []";
- example = "hp: with hp; [ text lens ]";
- description = ''
- The Haskell packages to generate documentation for.
-
- The option value is a function that takes the package set specified in
- the <varname>haskellPackages</varname> option as its sole parameter and
- returns a list of packages.
- '';
- };
-
- haskellPackages = mkOption {
- description = "Which haskell package set to use.";
- default = pkgs.haskellPackages;
- defaultText = "pkgs.haskellPackages";
- };
-
- home = mkOption {
- type = types.str;
- description = "Url for hoogle logo";
- default = "https://hoogle.haskell.org";
- };
-
- host = mkOption {
- type = types.str;
- description = "Set the host to bind on.";
- default = "127.0.0.1";
- };
- };
-
- config = mkIf cfg.enable {
- systemd.services.hoogle = {
- description = "Haskell documentation server";
-
- wantedBy = [ "multi-user.target" ];
-
- serviceConfig = {
- Restart = "always";
- ExecStart = "${hoogleEnv}/bin/hoogle server --local --port ${
- toString cfg.port
- } --home ${cfg.home} --host ${cfg.host}";
-
- DynamicUser = true;
-
- ProtectHome = true;
-
- RuntimeDirectory = "hoogle";
- WorkingDirectory = "%t/hoogle";
- };
- };
- };
-
-}