From 030a30b4b601ab4736715742eaa502a93d89c1fc Mon Sep 17 00:00:00 2001 From: Marc Weber Date: Fri, 6 Mar 2009 12:26:55 +0000 Subject: [PATCH] Convert "irc-hybrid" svn path=/nixos/branches/fix-style/; revision=14387 --- system/options.nix | 73 +---------------- upstart-jobs/default.nix | 5 -- upstart-jobs/ircd-hybrid.nix | 150 ++++++++++++++++++++++++++++------- 3 files changed, 122 insertions(+), 106 deletions(-) diff --git a/system/options.nix b/system/options.nix index 7eb77868e69..69ec7553c25 100644 --- a/system/options.nix +++ b/system/options.nix @@ -479,78 +479,6 @@ in }; - ircdHybrid = { - - enable = mkOption { - default = false; - description = " - Enable IRCD. - "; - }; - - serverName = mkOption { - default = "hades.arpa"; - description = " - IRCD server name. - "; - }; - - sid = mkOption { - default = "0NL"; - description = " - IRCD server unique ID in a net of servers. - "; - }; - - description = mkOption { - default = "Hybrid-7 IRC server."; - description = " - IRCD server description. - "; - }; - - rsaKey = mkOption { - default = null; - example = /root/certificates/irc.key; - description = " - IRCD server RSA key. - "; - }; - - certificate = mkOption { - default = null; - example = /root/certificates/irc.pem; - description = " - IRCD server SSL certificate. There are some limitations - read manual. - "; - }; - - adminEmail = mkOption { - default = ""; - example = ""; - description = " - IRCD server administrator e-mail. - "; - }; - - extraIPs = mkOption { - default = []; - example = ["127.0.0.1"]; - description = " - Extra IP's to bind. - "; - }; - - extraPort = mkOption { - default = "7117"; - description = " - Extra port to avoid filtering. - "; - }; - - }; - - xfs = { enable = mkOption { @@ -972,6 +900,7 @@ in (import ../upstart-jobs/cupsd.nix) # CUPS printing daemon (import ../upstart-jobs/udev.nix) # The udev daemon creates devices nodes and runs programs when hardware events occur. (import ../upstart-jobs/samba.nix) # TODO: doesn't start here (?) + (import ../upstart-jobs/ircd-hybrid.nix) # TODO: doesn't compile on x86_64-linux, can't test # nix (import ../upstart-jobs/nix.nix) # nix options and daemon diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index 6c6b3293f75..116f6e1b79a 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -155,11 +155,6 @@ let inherit config pkgs; }) - ++ optional config.services.ircdHybrid.enable - (import ../upstart-jobs/ircd-hybrid.nix { - inherit config pkgs; - }) - # Postfix mail server. ++ optional config.services.postfix.enable (import ../upstart-jobs/postfix.nix { diff --git a/upstart-jobs/ircd-hybrid.nix b/upstart-jobs/ircd-hybrid.nix index 4183673cef8..b78c65e96b9 100644 --- a/upstart-jobs/ircd-hybrid.nix +++ b/upstart-jobs/ircd-hybrid.nix @@ -1,38 +1,130 @@ -{config, pkgs}: +{pkgs, config, ...}: + +###### interface let - cfg = config.services.ircdHybrid; - ircdService = import ../services/ircd-hybrid { - stdenv = pkgs.stdenv; - inherit (pkgs) ircdHybrid coreutils - su iproute gnugrep procps; - serverName = cfg.serverName; - sid = cfg.sid; - description = cfg.description; - rsaKey = cfg.rsaKey; - certificate = cfg.certificate; - adminEmail = cfg.adminEmail; - extraIPs = cfg.extraIPs; - extraPort = cfg.extraPort; - gw6cEnabled = (config.services.gw6c.enable) && - (config.services.gw6c.autorun); + inherit (pkgs.lib) mkOption mkIf; + + options = { + services = { + ircdHybrid = { + + enable = mkOption { + default = false; + description = " + Enable IRCD. + "; }; + serverName = mkOption { + default = "hades.arpa"; + description = " + IRCD server name. + "; + }; + + sid = mkOption { + default = "0NL"; + description = " + IRCD server unique ID in a net of servers. + "; + }; + + description = mkOption { + default = "Hybrid-7 IRC server."; + description = " + IRCD server description. + "; + }; + + rsaKey = mkOption { + default = null; + example = /root/certificates/irc.key; + description = " + IRCD server RSA key. + "; + }; + + certificate = mkOption { + default = null; + example = /root/certificates/irc.pem; + description = " + IRCD server SSL certificate. There are some limitations - read manual. + "; + }; + + adminEmail = mkOption { + default = ""; + example = ""; + description = " + IRCD server administrator e-mail. + "; + }; + + extraIPs = mkOption { + default = []; + example = ["127.0.0.1"]; + description = " + Extra IP's to bind. + "; + }; + + extraPort = mkOption { + default = "7117"; + description = " + Extra port to avoid filtering. + "; + }; + + }; + }; + }; +in + +###### implementation + +let + cfg = config.services.ircdHybrid; + ircdService = import ../../services/ircd-hybrid { + stdenv = pkgs.stdenv; + inherit (pkgs) ircdHybrid coreutils + su iproute gnugrep procps; + serverName = cfg.serverName; + sid = cfg.sid; + description = cfg.description; + rsaKey = cfg.rsaKey; + certificate = cfg.certificate; + adminEmail = cfg.adminEmail; + extraIPs = cfg.extraIPs; + extraPort = cfg.extraPort; + gw6cEnabled = (config.services.gw6c.enable) && + (config.services.gw6c.autorun); + }; + startingDependency = if config.services.gw6c.enable then "gw6c" else "network-interfaces"; in -{ - name = "ircd-hybrid"; - users = [ { - name = "ircd"; - description = "IRCD owner."; - } ]; - groups = [{name = "ircd";}]; - job = " -description = \"IRCD Hybrid server.\" -start on ${startingDependency}/started -stop on ${startingDependency}/stop +mkIf config.services.ircdHybrid.enable { + require = [ + options + ]; -respawn ${ircdService}/bin/control start -"; + services = { + extraJobs = [{ + name = "ircd-hybrid"; + users = [ { + name = "ircd"; + description = "IRCD owner."; + } ]; + groups = [{name = "ircd";}]; + job = '' + description = "IRCD Hybrid server." + + start on ${startingDependency}/started + stop on ${startingDependency}/stop + + respawn ${ircdService}/bin/control start + ''; + }]; + }; }