Rework printer setup.
Don't remove local printers. Create printerlist.csv for VMs.
This commit is contained in:
parent
463997aa26
commit
679e0cc0aa
3 changed files with 17 additions and 8 deletions
|
@ -5,7 +5,7 @@ set -eu
|
||||||
printservers="{{ printservers | join(' ') }}"
|
printservers="{{ printservers | join(' ') }}"
|
||||||
hostgroup="$(id -Gn "${HOSTNAME^^}$")"
|
hostgroup="$(id -Gn "${HOSTNAME^^}$")"
|
||||||
usergroup="$(id -Gn "${SUDO_USER}")"
|
usergroup="$(id -Gn "${SUDO_USER}")"
|
||||||
installedprinters="$(lpstat -p | cut -f 2 -d" ")"
|
installedprinters="$(lpstat -v | cut -f 3 -d" " | sed 's/:$//' )"
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Hostgroups: ${hostgroup}
|
Hostgroups: ${hostgroup}
|
||||||
|
@ -17,20 +17,18 @@ EOF
|
||||||
|
|
||||||
## Remove all printers not wanted:
|
## Remove all printers not wanted:
|
||||||
for p in $installedprinters ; do
|
for p in $installedprinters ; do
|
||||||
if [[ ! "${hostgroup}" =~ "$p" ]] && [[ ! "${usergroup}" =~ "$p" ]] ; then
|
printer_ip=$(lpstat -v "${p}" | sed -nE "s%.*ipp://(.+)/printers.*%\1%p")
|
||||||
|
if [[ ! "${hostgroup}" =~ "$p" ]] && [[ ! "${usergroup}" =~ "$p" ]] \
|
||||||
|
&& [[ -n $printer_ip ]] && (echo "${printservers}" | grep -w -q "${printer_ip}"); then
|
||||||
echo "Removing print queue '$p'."
|
echo "Removing print queue '$p'."
|
||||||
lpadmin -x "$p"
|
lpadmin -x "$p"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
## Prepare .printerlist.csv
|
|
||||||
mkdir -p "/lmn/media/${SUDO_USER}"
|
|
||||||
echo "Name;IppURL" > "/lmn/media/${SUDO_USER}/.printerlist.csv"
|
|
||||||
|
|
||||||
## Add all printers needed:
|
## Add all printers needed:
|
||||||
for ps in $printservers ; do
|
for ps in $printservers ; do
|
||||||
echo "Checking print server '$ps' for available printers:"
|
echo "Checking print server '$ps' for available printers:"
|
||||||
printers="$(lpstat -h "$ps" -U "${SUDO_USER}" -v | sed -E 's/^.+ (\w+): .+$/\1/')"
|
printers="$(timeout 5 lpstat -h "$ps" -U "${SUDO_USER}" -v | sed -E 's/^.+ (\w+): .+$/\1/')"
|
||||||
echo -e "$printers\n"
|
echo -e "$printers\n"
|
||||||
for p in $printers; do
|
for p in $printers; do
|
||||||
if [[ "${hostgroup}" =~ "$p" ]] || [[ "${usergroup}" =~ "$p" ]] ; then
|
if [[ "${hostgroup}" =~ "$p" ]] || [[ "${usergroup}" =~ "$p" ]] ; then
|
||||||
|
@ -42,7 +40,6 @@ for ps in $printservers ; do
|
||||||
"ipp://$ps/printers/$p" \
|
"ipp://$ps/printers/$p" \
|
||||||
-m "driverless:ipp://$ps/printers/$p" || echo "Adding queue '$p' failed."
|
-m "driverless:ipp://$ps/printers/$p" || echo "Adding queue '$p' failed."
|
||||||
fi
|
fi
|
||||||
echo "$p;ipp://192.168.122.1/printers/$p" >> "/lmn/media/${SUDO_USER}/.printerlist.csv"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
|
@ -105,6 +105,15 @@ create_clone() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create_printerlist() {
|
||||||
|
## Prepare .printerlist.csv
|
||||||
|
mkdir -p "${VM_MEDIADIR}"
|
||||||
|
echo "Name;IppURL" > "${VM_MEDIADIR}/.printerlist.csv"
|
||||||
|
for p in $(lpstat -v | cut -f 3 -d" " | sed 's/:$//'); do
|
||||||
|
echo "$p;ipp://192.168.122.1/printers/$p" >> "${VM_MEDIADIR}/.printerlist.csv"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
QEMU='qemu:///session'
|
QEMU='qemu:///session'
|
||||||
|
|
||||||
NEWCLONE=0
|
NEWCLONE=0
|
||||||
|
@ -221,6 +230,7 @@ if ! virsh --connect="${QEMU}" list | grep "${VM_NAME}-clone"; then
|
||||||
virsh --connect=qemu:///session undefine "${VM_NAME}-clone" || echo "${VM_NAME}-clone did not exist"
|
virsh --connect=qemu:///session undefine "${VM_NAME}-clone" || echo "${VM_NAME}-clone did not exist"
|
||||||
#trap exit_script SIGHUP SIGINT SIGTERM
|
#trap exit_script SIGHUP SIGINT SIGTERM
|
||||||
|
|
||||||
|
create_printerlist
|
||||||
# start virtiofsd-service
|
# start virtiofsd-service
|
||||||
[[ "${QEMU}" = 'qemu:///session' ]] && sudo /usr/local/bin/vm-virtiofsd "${VM_NAME}"
|
[[ "${QEMU}" = 'qemu:///session' ]] && sudo /usr/local/bin/vm-virtiofsd "${VM_NAME}"
|
||||||
|
|
||||||
|
|
|
@ -15,3 +15,5 @@ else
|
||||||
VM_DIR="/tmp/${UID}/vm"
|
VM_DIR="/tmp/${UID}/vm"
|
||||||
VM_DIR_PERSISTENT="/var/vm/${UID}"
|
VM_DIR_PERSISTENT="/var/vm/${UID}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
VM_MEDIADIR="/lmn/media/${USER}"
|
||||||
|
|
Loading…
Add table
Reference in a new issue