#!/bin/sh

: ${cups_admin_group='sysadmins'}
: ${cups_server_admin="${cups_admin_group}@${email_domain}"}

cups_user=cups
cups_conf_dir=/usr/local/etc/cups
cups_tls_dir=${cups_conf_dir}/ssl
cups_tls_cert="${cups_tls_dir}/${fqdn}.crt"
cups_tls_key="${cups_tls_dir}/${fqdn}.key"

# Create dataset for persistent CUPS configuration.
create_dataset -o "mountpoint=${cups_conf_dir}" "${state_dataset}/cups"
zfs set com.sun:auto-snapshot:daily=true "${state_dataset}/cups"

# Install required packages.
pkg install -y cups cups-filters

# Copy TLS certificate for CUPS.
install_certificate     -g "$cups_user" cups "$cups_tls_cert"
install_certificate_key -g "$cups_user" cups "$cups_tls_key"

# Generate CUPS pam configuration.
install_file -m 0644 /etc/pam.d/cups

# Copy CUPS configuration.
install_template -o root -g "$cups_user" -m 0640 \
  "${cups_conf_dir}/cupsd.conf" \
  "${cups_conf_dir}/cups-files.conf"

sysrc -v cupsd_enable=YES
service cupsd restart