diff options
author | koral <koral@mailoo.org> | 2015-02-06 00:50:11 +0100 |
---|---|---|
committer | koral <koral@mailoo.org> | 2015-02-18 21:19:12 +0000 |
commit | d9078d03a30dd332542f662734d67898421c3bf6 (patch) | |
tree | 20490c8aa30bc587124e5c565f93a0e062cf28c0 /nixos/modules/services/web-servers/fcgiwrap.nix | |
parent | 519c696bcf51a4ed3163b214d6bc54d128e342c4 (diff) | |
download | nixpkgs-d9078d03a30dd332542f662734d67898421c3bf6.tar nixpkgs-d9078d03a30dd332542f662734d67898421c3bf6.tar.gz nixpkgs-d9078d03a30dd332542f662734d67898421c3bf6.tar.bz2 nixpkgs-d9078d03a30dd332542f662734d67898421c3bf6.tar.lz nixpkgs-d9078d03a30dd332542f662734d67898421c3bf6.tar.xz nixpkgs-d9078d03a30dd332542f662734d67898421c3bf6.tar.zst nixpkgs-d9078d03a30dd332542f662734d67898421c3bf6.zip |
Updated fcgiwrap's systemd unit to match upstream version.
Diffstat (limited to 'nixos/modules/services/web-servers/fcgiwrap.nix')
-rw-r--r-- | nixos/modules/services/web-servers/fcgiwrap.nix | 51 |
1 files changed, 37 insertions, 14 deletions
diff --git a/nixos/modules/services/web-servers/fcgiwrap.nix b/nixos/modules/services/web-servers/fcgiwrap.nix index 7e91e7b60ee..2c5e433003c 100644 --- a/nixos/modules/services/web-servers/fcgiwrap.nix +++ b/nixos/modules/services/web-servers/fcgiwrap.nix @@ -4,7 +4,6 @@ with lib; let cfg = config.services.fcgiwrap; - in { options = { @@ -21,29 +20,53 @@ in { description = "Number of processes to prefork."; }; - bindSocket = mkOption { - type = types.string; - default = "unix:/run/fcgiwrap.sock"; - description = '' - Socket to bind to. Valid socket URLs are: - unix:/path/to/socket for Unix sockets - tcp:dot.ted.qu.ad:port for IPv4 sockets - tcp6:[ipv6_addr]:port for IPv6 sockets - ''; + socketType = mkOption { + type = types.addCheck types.str (t: t == "unix" || t == "tcp" || t == "tcp6"); + default = "unix"; + description = "Socket type: 'unix', 'tcp' or 'tcp6'."; + }; + + socketAddress = mkOption { + type = types.str; + default = "/run/fcgiwrap.sock"; + example = "1.2.3.4:5678"; + description = "Socket address. In case of a UNIX socket, this should be its filesystem path."; + }; + + user = mkOption { + type = types.nullOr types.str; + default = null; + description = "User permissions for the socket."; + }; + + group = mkOption { + type = types.nullOr types.str; + default = null; + description = "Group permissions for the socket."; }; }; }; config = mkIf cfg.enable { - systemd.services.fcgiwrap = { after = [ "nss-user-lookup.target" ]; - wantedBy = [ "multi-user.target" ]; + wantedBy = optional (cfg.socketType != "unix") "multi-user.target"; serviceConfig = { - ExecStart = "${pkgs.fcgiwrap}/sbin/fcgiwrap -c ${builtins.toString cfg.preforkProcesses} -s ${cfg.bindSocket}"; - }; + ExecStart = "${pkgs.fcgiwrap}/sbin/fcgiwrap -c ${builtins.toString cfg.preforkProcesses} ${ + if (cfg.socketType != "unix") then "-s ${cfg.socketType}:${cfg.socketAddress}" else "" + }"; + } // (if cfg.user != null && cfg.group != null then { + User = cfg.user; + Group = cfg.group; + } else { } ); }; + systemd.sockets = if (cfg.socketType == "unix") then { + fcgiwrap = { + wantedBy = [ "sockets.target" ]; + socketConfig.ListenStream = cfg.socketAddress; + }; + } else { }; }; } |