Move all of NixOS to nixos/ in preparation of the repository merge

This commit is contained in:
Eelco Dolstra
2013-10-10 13:28:20 +02:00
parent 6070bc016b
commit 5c1f8cbc70
481 changed files with 0 additions and 0 deletions
@@ -0,0 +1,94 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
cfg = config.services.statsd;
configFile = pkgs.writeText "statsd.conf" ''
{
host: "${cfg.host}",
port: "${toString cfg.port}",
backends: [${concatMapStrings (el: ''"./backends/${el}",'') cfg.backends}],
graphiteHost: "${cfg.graphiteHost}",
graphitePort: "${toString cfg.graphitePort}",
${cfg.extraConfig}
}
'';
in
{
###### interface
options.services.statsd = {
enable = mkOption {
description = "Whether to enable statsd stats aggregation service";
default = false;
type = types.uniq types.bool;
};
host = mkOption {
description = "Address that statsd listens on over UDP";
default = "127.0.0.1";
type = types.uniq types.string;
};
port = mkOption {
description = "Port that stats listens for messages on over UDP";
default = 8125;
type = types.uniq types.int;
};
backends = mkOption {
description = "List of backends statsd will use for data persistance";
default = ["graphite"];
};
graphiteHost = mkOption {
description = "Hostname or IP of Graphite server";
default = "127.0.0.1";
type = types.uniq types.string;
};
graphitePort = mkOption {
description = "Port of Graphite server";
default = 2003;
type = types.uniq types.int;
};
extraConfig = mkOption {
default = "";
description = "Extra configuration options for statsd";
type = types.uniq types.string;
};
};
###### implementation
config = mkIf cfg.enable {
users.extraUsers = singleton {
name = "statsd";
uid = config.ids.uids.statsd;
description = "Statsd daemon user";
};
systemd.services.statsd = {
description = "Statsd Server";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.nodePackages.statsd}/bin/statsd ${configFile}";
User = "statsd";
};
};
environment.systemPackages = [pkgs.nodePackages.statsd];
};
}