summary refs log tree commit diff
path: root/nixos/modules/services/networking/smokeping.nix
diff options
context:
space:
mode:
authorTristan Helmich <tristan.helmich@gmail.com>2017-01-03 23:08:26 +0100
committerTristan Helmich <tristan.helmich@gmail.com>2017-01-03 23:10:59 +0100
commitf808502aba1efe6e2e40ed10955ca6f974da9b17 (patch)
tree6ecbe9dd378f993e3acecdd4eff12672311c34bf /nixos/modules/services/networking/smokeping.nix
parentb5703eaa802d3775d86cdaaf0057fcd7acc798f9 (diff)
downloadnixpkgs-f808502aba1efe6e2e40ed10955ca6f974da9b17.tar
nixpkgs-f808502aba1efe6e2e40ed10955ca6f974da9b17.tar.gz
nixpkgs-f808502aba1efe6e2e40ed10955ca6f974da9b17.tar.bz2
nixpkgs-f808502aba1efe6e2e40ed10955ca6f974da9b17.tar.lz
nixpkgs-f808502aba1efe6e2e40ed10955ca6f974da9b17.tar.xz
nixpkgs-f808502aba1efe6e2e40ed10955ca6f974da9b17.tar.zst
nixpkgs-f808502aba1efe6e2e40ed10955ca6f974da9b17.zip
smokeping: cleanup (option ordering)
Diffstat (limited to 'nixos/modules/services/networking/smokeping.nix')
-rw-r--r--nixos/modules/services/networking/smokeping.nix203
1 files changed, 99 insertions, 104 deletions
diff --git a/nixos/modules/services/networking/smokeping.nix b/nixos/modules/services/networking/smokeping.nix
index 9c8dfa7bac4..04312c39062 100644
--- a/nixos/modules/services/networking/smokeping.nix
+++ b/nixos/modules/services/networking/smokeping.nix
@@ -11,17 +11,17 @@ let
       then
         ''
           *** General ***
-          owner = ${cfg.owner}
+          cgiurl   = ${cfg.cgiUrl}
           contact = ${cfg.ownerEmail}
-          ${lib.optionalString (cfg.mailHost != "") "mailhost = ${cfg.mailHost}"}
-          ${lib.optionalString (cfg.sendmail != null) "sendmail = ${cfg.sendmail}"}
+          datadir  = ${smokepingHome}/data
           imgcache = ${smokepingHome}/cache
           imgurl   = ${cfg.imgUrl}
-          datadir  = ${smokepingHome}/data
+          linkstyle = ${cfg.linkStyle}
+          ${lib.optionalString (cfg.mailHost != "") "mailhost = ${cfg.mailHost}"}
+          owner = ${cfg.owner}
           pagedir = ${smokepingHome}/cache
           piddir  = ${smokepingPidDir}
-          cgiurl   = ${cfg.cgiUrl}
-          linkstyle = ${cfg.linkStyle}
+          ${lib.optionalString (cfg.sendmail != null) "sendmail = ${cfg.sendmail}"}
           smokemail = ${cfg.smokeMailTemplate}
           *** Presentation ***
           template = ${cfg.presentationTemplate}
@@ -54,52 +54,23 @@ in
         default = false;
         description = "Enable the smokeping service";
       };
-      webService = mkOption {
-        type = types.bool;
-        default = true;
-        description = "Enable a smokeping web interface";
-      };
-
-      user = mkOption {
-        type = types.string;
-        default = "smokeping";
-        description = "User that runs smokeping and (optionally) thttpd";
-      };
-      mailHost = mkOption {
-        type = types.string;
-        default = "";
-        example = "localhost";
-        description = "Use this SMTP server to send alerts";
-      };
-      sendmail = mkOption {
-        type = types.nullOr types.path;
-        default = null;
-        example = "/var/setuid-wrappers/sendmail";
-        description = "Use this sendmail compatible script to deliver alerts";
-      };
-      smokeMailTemplate = mkOption {
+      alertConfig = mkOption {
         type = types.string;
-        default = "${cfg.package}/etc/smokemail.dist";
-        description = "Specify the smokemail template for alerts.";
-      };
+        default = ''
+          to = root@localhost
+          from = smokeping@localhost
+        '';
+        example = literalExample ''
+          to = alertee@address.somewhere
+          from = smokealert@company.xy
 
-      package = mkOption {
-        type = types.package;
-        default = pkgs.smokeping;
-        defaultText = "pkgs.smokeping";
-        description = "Specify a custom smokeping package";
-      };
-      owner = mkOption {
-        type = types.string;
-        default = "nobody";
-        example = "Joe Admin";
-        description = "Real name of the owner of the instance";
-      };
-      hostName = mkOption {
-        type = types.string;
-        default = config.networking.hostName;
-        example = "somewhere.example.com";
-        description = "DNS name for the urls generated in the cgi.";
+          +someloss
+          type = loss
+          # in percent
+          pattern = >0%,*12*,>0%,*12*,>0%
+          comment = loss 3 times  in a row;
+        '';
+        description = "Configuration for alerts.";
       };
       cgiUrl = mkOption {
         type = types.string;
@@ -107,31 +78,12 @@ in
         example = "https://somewhere.example.com/smokeping.cgi";
         description = "URL to the smokeping cgi.";
       };
-      imgUrl = mkOption {
-        type = types.string;
-        default = "http://${cfg.hostName}:${builtins.toString cfg.port}/cache";
-        example = "https://somewhere.example.com/cache";
-        description = "Base url for images generated in the cgi.";
-      };
-      linkStyle = mkOption {
-        type = types.enum ["original" "absolute" "relative"];
-        default = "relative";
-        example = "absolute";
-        description = "DNS name for the urls generated in the cgi.";
-      };
-      port = mkOption {
-        type = types.int;
-        default = 8081;
-        example = 8081;
-        description = "TCP port to use for the web server.";
-      };
-      ownerEmail = mkOption {
-        type = types.string;
-        default = "no-reply@${cfg.hostName}";
-        example = "no-reply@yourdomain.com";
-        description = "Email contact for owner";
+      config = mkOption {
+        type = types.nullOr types.string;
+        default = null;
+        description = "Full smokeping config supplied by the user. Overrides " +
+          "and replaces any other configuration supplied.";
       };
-
       databaseConfig = mkOption {
         type = types.string;
         default = ''
@@ -164,30 +116,59 @@ in
           Once set, changing the interval will require deletion or migration of all
           the collected data.'';
       };
-      alertConfig = mkOption {
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = "Any additional customization not already included.";
+      };
+      hostName = mkOption {
         type = types.string;
-        default = ''
-          to = root@localhost
-          from = smokeping@localhost
-        '';
-        example = literalExample ''
-          to = alertee@address.somewhere
-          from = smokealert@company.xy
-
-          +someloss
-          type = loss
-          # in percent
-          pattern = >0%,*12*,>0%,*12*,>0%
-          comment = loss 3 times  in a row;
-        '';
-        description = "Configuration for alerts.";
+        default = config.networking.hostName;
+        example = "somewhere.example.com";
+        description = "DNS name for the urls generated in the cgi.";
       };
-      presentationTemplate = mkOption {
+      imgUrl = mkOption {
         type = types.string;
-        default = "${pkgs.smokeping}/etc/basepage.html.dist";
-        description = "Default page layout for the web UI.";
+        default = "http://${cfg.hostName}:${builtins.toString cfg.port}/cache";
+        example = "https://somewhere.example.com/cache";
+        description = "Base url for images generated in the cgi.";
+      };
+      linkStyle = mkOption {
+        type = types.enum ["original" "absolute" "relative"];
+        default = "relative";
+        example = "absolute";
+        description = "DNS name for the urls generated in the cgi.";
+      };
+      mailHost = mkOption {
+        type = types.string;
+        default = "";
+        example = "localhost";
+        description = "Use this SMTP server to send alerts";
+      };
+      owner = mkOption {
+        type = types.string;
+        default = "nobody";
+        example = "Joe Admin";
+        description = "Real name of the owner of the instance";
+      };
+      ownerEmail = mkOption {
+        type = types.string;
+        default = "no-reply@${cfg.hostName}";
+        example = "no-reply@yourdomain.com";
+        description = "Email contact for owner";
+      };
+      package = mkOption {
+        type = types.package;
+        default = pkgs.smokeping;
+        defaultText = "pkgs.smokeping";
+        description = "Specify a custom smokeping package";
+      };
+      port = mkOption {
+        type = types.int;
+        default = 8081;
+        example = 8081;
+        description = "TCP port to use for the web server.";
       };
-
       presentationConfig = mkOption {
         type = types.string;
         default = ''
@@ -229,6 +210,11 @@ in
         '';
         description = "presentation graph style";
       };
+      presentationTemplate = mkOption {
+        type = types.string;
+        default = "${pkgs.smokeping}/etc/basepage.html.dist";
+        description = "Default page layout for the web UI.";
+      };
       probeConfig = mkOption {
         type = types.string;
         default = ''
@@ -237,6 +223,17 @@ in
         '';
         description = "Probe configuration";
       };
+      sendmail = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        example = "/var/setuid-wrappers/sendmail";
+        description = "Use this sendmail compatible script to deliver alerts";
+      };
+      smokeMailTemplate = mkOption {
+        type = types.string;
+        default = "${cfg.package}/etc/smokemail.dist";
+        description = "Specify the smokemail template for alerts.";
+      };
       targetConfig = mkOption {
         type = types.string;
         default = ''
@@ -255,18 +252,16 @@ in
         '';
         description = "Target configuration";
       };
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
-        description = "Any additional customization not already included.";
+      user = mkOption {
+        type = types.string;
+        default = "smokeping";
+        description = "User that runs smokeping and (optionally) thttpd";
       };
-      config = mkOption {
-        type = types.nullOr types.string;
-        default = null;
-        description = "Full smokeping config supplied by the user. Overrides " +
-          "and replaces any other configuration supplied.";
+      webService = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Enable a smokeping web interface";
       };
-
     };
 
   };