# copyright koumbit.org # Licence: GPL class cups::server { package { "cupsys": ensure => "installed" } file { "/etc/cups/cupsd.conf": source => "puppet:///cups/cupsd.conf", ensure => present, require => Package["cupsys"], owner => "root", group => "root", mode => "644", } # service { "cups": # enable => true, # ensure => running, # subscribe => [ Package["cupsys"], File["/etc/cups/cupsd.conf"] ], # } } define cups::printer ($printer, $p_deviceuri, $p_description, $p_location, $p_pathppd, $p_accept = "", $p_enable = "" ) { include cups::server exec { "cups_create_printer_$name": command => "lpadmin -p $printer -v $p_deviceuri -D '$p_description' -L '$p_location' -P $p_pathppd", path => "/bin:/sbin:/usr/sbin:/usr/bin", unless => "/bin/grep $printer /etc/cups/printers.conf", require => Package["cupsys"], } if $p_accept { exec { "cupsaccept_$name": command => "cupsaccept $printer", path => "/bin:/sbin:/usr/sbin:/usr/bin", unless => "grep -A8 $printer /etc/cups/printers.conf | grep 'Accepting Yes'", require => exec["cups_create_printer_$name"], } } else { debug ("'$printer' will not accept print jobs") } if $p_enable { exec { "cupsenable_$name": command => "cupsenable $printer", path => "/bin:/sbin:/usr/sbin:/usr/bin", unless => "grep -A5 $printer /etc/cups/printers.conf | grep 'State Idle'", require => exec["cups_create_printer_$name"], } } else { debug ("'$printer' is disabled") } file { "/etc/cups/printers.conf": ensure => present, require => Package["cupsys"], owner => "root", group => "lp", mode => "600", } service { "cups": enable => true, ensure => running, subscribe => [ Package["cupsys"], File["/etc/cups/printers.conf"] ], } }