{ writeText, cups
}:
let
logDir = "/var/log/cups";
cupsdConfig = writeText "cupsd.conf" "
LogLevel info
SystemGroup root
Listen localhost:631
Listen /var/run/cups/cups.sock
ServerRoot ${cups}/etc/cups
AccessLog ${logDir}/access_log
ErrorLog ${logDir}/access_log
PageLog ${logDir}/page_log
TempDir /tmp
Browsing On
BrowseOrder allow,deny
BrowseAllow @LOCAL
DefaultAuthType Basic
Order allow,deny
Allow localhost
Order allow,deny
Allow localhost
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
Require user @OWNER @SYSTEM
Order deny,allow
AuthType Basic
Require user @SYSTEM
Order deny,allow
Require user @OWNER @SYSTEM
Order deny,allow
Order deny,allow
";
in
{
name = "cupsd";
extraPath = [
cups
];
job = "
description \"CUPS daemon\"
start on network-interfaces/started
stop on network-interfaces/stop
start script
mkdir -m 0755 -p ${logDir}
mkdir -m 0700 -p /var/cache/cups
mkdir -m 0700 -p /var/spool/cups
end script
respawn ${cups}/sbin/cupsd -c ${cupsdConfig} -F
";
}