python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / networking / ngircd.nix
blob5e721f5aa6258f7c052724042a352d75ff481f0f
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   cfg = config.services.ngircd;
8   configFile = pkgs.stdenv.mkDerivation {
9     name = "ngircd.conf";
11     text = cfg.config;
13     preferLocalBuild = true;
15     buildCommand = ''
16       echo -n "$text" > $out
17       ${cfg.package}/sbin/ngircd --config $out --configtest
18     '';
19   };
20 in {
21   options = {
22     services.ngircd = {
23       enable = mkEnableOption (lib.mdDoc "the ngircd IRC server");
25       config = mkOption {
26         description = lib.mdDoc "The ngircd configuration (see ngircd.conf(5)).";
28         type = types.lines;
29       };
31       package = mkOption {
32         description = lib.mdDoc "The ngircd package.";
34         type = types.package;
36         default = pkgs.ngircd;
37         defaultText = literalExpression "pkgs.ngircd";
38       };
39     };
40   };
42   config = mkIf cfg.enable {
43     #!!! TODO: Use ExecReload (see https://github.com/NixOS/nixpkgs/issues/1988)
44     systemd.services.ngircd = {
45       description = "The ngircd IRC server";
47       wantedBy = [ "multi-user.target" ];
49       serviceConfig.ExecStart = "${cfg.package}/sbin/ngircd --config ${configFile} --nodaemon";
51       serviceConfig.User = "ngircd";
52     };
54     users.users.ngircd = {
55       isSystemUser = true;
56       group = "ngircd";
57       description = "ngircd user.";
58     };
59     users.groups.ngircd = {};
61   };