lmn-client/roles/lmn_printer/templates/install-printers.sh.j2
2023-11-09 09:10:23 +01:00

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