memcached: Add more options and extraOptions support

This commit is contained in:
Oliver Charles 2013-06-23 19:07:41 +01:00
parent c7f61ee921
commit df6312e2cb

View File

@ -30,6 +30,36 @@ in
description = "The user to run Memcached as"; description = "The user to run Memcached as";
}; };
listen = mkOption {
default = "127.0.0.1";
description = "The IP address to bind to";
};
port = mkOption {
default = 11211;
description = "The port to bind to";
};
socket = mkOption {
default = "";
description = "Unix socket path to listen on. Setting this will disable network support";
example = "/var/run/memcached";
};
maxMemory = mkOption {
default = 64;
description = "The maximum amount of memory to use for storage, in megabytes.";
};
maxConnections = mkOption {
default = 1024;
description = "The maximum number of simultaneous connections";
};
extraOptions = mkOption {
default = [];
description = "A list of extra options that will be added as a suffix when running memcached";
};
}; };
}; };
@ -52,7 +82,13 @@ in
after = [ "network.target" ]; after = [ "network.target" ];
serviceConfig = { serviceConfig = {
ExecStart = "${memcached}/bin/memcached"; ExecStart =
let
networking = if cfg.socket != ""
then "-s ${cfg.socket}"
else "-l ${cfg.listen} -p ${toString cfg.port}";
in "${memcached}/bin/memcached ${networking} -m ${toString cfg.maxMemory} -c ${toString cfg.maxConnections} ${concatStringsSep " " cfg.extraOptions}";
User = cfg.user; User = cfg.user;
}; };
}; };