From 66db1b3a646e73e15458da4ff98347d424454b88 Mon Sep 17 00:00:00 2001 From: Petr Rockai Date: Sat, 27 Oct 2012 23:11:54 +0200 Subject: [PATCH] nixos: Add a dictd service. --- nixos/modules/module-list.nix | 1 + nixos/modules/services/misc/dictd.nix | 61 +++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 nixos/modules/services/misc/dictd.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 442edd8029d..aa4bada8b28 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -116,6 +116,7 @@ ./services/mail/spamassassin.nix ./services/misc/autofs.nix ./services/misc/cgminer.nix + ./services/misc/dictd.nix ./services/misc/disnix.nix ./services/misc/felix.nix ./services/misc/folding-at-home.nix diff --git a/nixos/modules/services/misc/dictd.nix b/nixos/modules/services/misc/dictd.nix new file mode 100644 index 00000000000..b84fbb3e128 --- /dev/null +++ b/nixos/modules/services/misc/dictd.nix @@ -0,0 +1,61 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +{ + + ###### interface + + options = { + + services.dictd = { + + enable = mkOption { + default = false; + description = '' + Whether to enable the DICT.org dictionary server. + ''; + }; + + DBs = mkOption { + default = []; + # example = [ pkgs.dictDBs.nld2eng ]; + description = ''List of databases to make available.''; + }; + + }; + + }; + + + ###### implementation + + config = let dictdb = pkgs.dictDBCollector { dictlist = map (x: { + name = x.name; + filename = x; } ) config.services.dictd.DBs; }; + in mkIf config.services.dictd.enable { + + # get the command line client on system path to make some use of the service + environment.systemPackages = [ pkgs.dict ]; + + users.extraUsers = singleton + { name = "dictd"; + group = "dictd"; + description = "DICT.org dictd server"; + home = "${dictdb}/share/dictd"; + }; + + users.extraGroups = singleton + { name = "dictd"; + }; + + jobs.dictd = + { description = "DICT.org Dictionary Server"; + startOn = "startup"; + environment = { LOCALE_ARCHIVE = "/run/current-system/sw/lib/locale/locale-archive"; }; + daemonType = "fork"; + exec = "${pkgs.dict}/sbin/dictd -s -c ${dictdb}/share/dictd/dictd.conf --locale en_US.UTF-8"; + }; + }; + +}