36 lines
1.2 KiB
Django/Jinja
36 lines
1.2 KiB
Django/Jinja
#!/usr/bin/bash
|
|
|
|
set -eu
|
|
|
|
printservers="{{ printservers | join(' ') }}"
|
|
hostname=$(hostname)
|
|
hostgroup=$(id -Gn "${hostname^^}$")
|
|
usergroup=$(id -Gn "${SUDO_USER}")
|
|
installedprinters=$(lpstat -p | cut -f 2 -d" " | sed -z 's/\n/ /g' )
|
|
|
|
echo "Hostgroups: ${hostgroup}"
|
|
echo "Usergroups: ${usergroup}"
|
|
echo "Installed Printers: ${installedprinters}"
|
|
echo
|
|
|
|
for printer in $installedprinters; do
|
|
if ! $(echo "${hostgroup}" | grep -w -q "${printer}") && ! $(echo "${usergroup}" | grep -w -q "${printer}") ; then
|
|
lpadmin -x "${printer}"
|
|
fi
|
|
done
|
|
|
|
for printserver in $printservers; do
|
|
echo "checking Server: $printserver"
|
|
printers=$(lpstat -h "${printserver}" -U "${SUDO_USER}" -v | cut -f 3 -d" " | sed 's/:$//g' | sed -z 's/\n/ /g' )
|
|
echo "Available Printers: $printers"
|
|
for printer in $printers; do
|
|
if $(echo "${hostgroup}" | grep -w -q "${printer}") || $(echo "${usergroup}" | grep -w -q "${printer}") ; then
|
|
if ! $(echo "${installedprinters}" | grep -w -q "${printer}"); then
|
|
echo "Adding ${printer}"
|
|
timeout 10 lpadmin -p "${printer}" -E -v "ipp://${printserver}/printers/${printer}" -m everywhere || echo "Printer ${printer} could not be added"
|
|
installedprinters+=" ${printer}"
|
|
fi
|
|
fi
|
|
done
|
|
done
|
|
|