diff options
author | Sebastian Hagen <sh_github@memespace.net> | 2017-05-25 22:28:50 +0100 |
---|---|---|
committer | Franz Pletz <fpletz@fnordicwalking.de> | 2017-05-25 23:28:50 +0200 |
commit | b3b243193228967cbef529a7e032f4d248594ca2 (patch) | |
tree | 197924a2e4a20473db3e547cd940fc5979722933 /nixos | |
parent | dd2b1744ba36ab8d5b352cdac9c98a5e1eb71e8f (diff) | |
download | nixlib-b3b243193228967cbef529a7e032f4d248594ca2.tar nixlib-b3b243193228967cbef529a7e032f4d248594ca2.tar.gz nixlib-b3b243193228967cbef529a7e032f4d248594ca2.tar.bz2 nixlib-b3b243193228967cbef529a7e032f4d248594ca2.tar.lz nixlib-b3b243193228967cbef529a7e032f4d248594ca2.tar.xz nixlib-b3b243193228967cbef529a7e032f4d248594ca2.tar.zst nixlib-b3b243193228967cbef529a7e032f4d248594ca2.zip |
charybdis service: add option to configure MOTD (#25512)
Read MOTD files from /etc/charybdis.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/networking/charybdis.nix | 76 |
1 files changed, 45 insertions, 31 deletions
diff --git a/nixos/modules/services/networking/charybdis.nix b/nixos/modules/services/networking/charybdis.nix index 2f7d006b8816..c354ec61fe23 100644 --- a/nixos/modules/services/networking/charybdis.nix +++ b/nixos/modules/services/networking/charybdis.nix @@ -51,6 +51,17 @@ in ''; }; + motd = mkOption { + type = types.nullOr types.lines; + default = null; + description = '' + Charybdis MOTD text. + + Charybdis will read its MOTD from /etc/charybdis/ircd.motd . + If set, the value of this option will be written to this path. + ''; + }; + }; }; @@ -58,39 +69,42 @@ in ###### implementation - config = mkIf cfg.enable { - - users.extraUsers = singleton { - name = cfg.user; - description = "Charybdis IRC daemon user"; - uid = config.ids.uids.ircd; - group = cfg.group; - }; - - users.extraGroups = singleton { - name = cfg.group; - gid = config.ids.gids.ircd; - }; - - systemd.services.charybdis = { - description = "Charybdis IRC daemon"; - wantedBy = [ "multi-user.target" ]; - environment = { - BANDB_DBPATH = "${cfg.statedir}/ban.db"; + config = mkIf cfg.enable (lib.mkMerge [ + { + users.extraUsers = singleton { + name = cfg.user; + description = "Charybdis IRC daemon user"; + uid = config.ids.uids.ircd; + group = cfg.group; }; - serviceConfig = { - ExecStart = "${charybdis}/bin/charybdis-ircd -foreground -logfile /dev/stdout -configfile ${configFile}"; - Group = cfg.group; - User = cfg.user; - PermissionsStartOnly = true; # preStart needs to run with root permissions - }; - preStart = '' - ${coreutils}/bin/mkdir -p ${cfg.statedir} - ${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.statedir} - ''; - }; + users.extraGroups = singleton { + name = cfg.group; + gid = config.ids.gids.ircd; + }; - }; + systemd.services.charybdis = { + description = "Charybdis IRC daemon"; + wantedBy = [ "multi-user.target" ]; + environment = { + BANDB_DBPATH = "${cfg.statedir}/ban.db"; + }; + serviceConfig = { + ExecStart = "${charybdis}/bin/charybdis-ircd -foreground -logfile /dev/stdout -configfile ${configFile}"; + Group = cfg.group; + User = cfg.user; + PermissionsStartOnly = true; # preStart needs to run with root permissions + }; + preStart = '' + ${coreutils}/bin/mkdir -p ${cfg.statedir} + ${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.statedir} + ''; + }; + } + + (mkIf (cfg.motd != null) { + environment.etc."charybdis/ircd.motd".text = cfg.motd; + }) + ]); } |