Merge pull request #37096 from jfrankenau/feat-cups-socket
nixos/cupsd: Add option to start when needed
This commit is contained in:
commit
8bda93f0b2
@ -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" ];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user