nixos/cupsd: add option to start when needed

This commit is contained in:
Johannes Frankenau 2018-03-15 12:55:03 +01:00
parent 23f5fe768d
commit d81f819db3

View File

@ -124,6 +124,16 @@ in
'';
};
startWhenNeeded = mkOption {
type = types.bool;
default = false;
description = ''
If set, CUPS is socket-activated; that is,
instead of having it permanently running as a daemon,
systemd will start it on the first incoming connection.
'';
};
listenAddresses = mkOption {
type = types.listOf types.str;
default = [ "localhost:631" ];
@ -287,8 +297,13 @@ in
systemd.packages = [ cups.out ];
systemd.sockets.cups = mkIf cfg.startWhenNeeded {
wantedBy = [ "sockets.target" ];
listenStreams = map (x: replaceStrings ["localhost"] ["127.0.0.1"] (removePrefix "*:" x)) cfg.listenAddresses;
};
systemd.services.cups =
{ wantedBy = [ "multi-user.target" ];
{ wantedBy = optionals (!cfg.startWhenNeeded) [ "multi-user.target" ];
wants = [ "network.target" ];
after = [ "network.target" ];