|
|
|
@ -17,11 +17,10 @@
|
|
|
|
## sys/devices/pci0000:00/0000:00:14.0/usb1/1-8
|
|
|
|
## sys/devices/pci0000:00/0000:00:14.0/usb1/1-8
|
|
|
|
##
|
|
|
|
##
|
|
|
|
|
|
|
|
|
|
|
|
[[ -f /usr/bin/bash ]] && /usr/bin/bash --version | grep -q ^"GNU bash" || exit 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
init_printer(){
|
|
|
|
init_printer(){
|
|
|
|
echo "${DEVNAME}" | grep -q "/dev/usb/lp" && DEVNAME="$(udevadm info -a -n ${DEVNAME} 2>/dev/null | grep "looking at" | head -1 | cut -d\' -f2 | sed "s/\/usbmisc.*//")"
|
|
|
|
echo "${DEVNAME}" | grep -q "/dev/usb/lp" && DEVNAME="$(udevadm info -a -n ${DEVNAME} 2>/dev/null | grep "looking at" | head -1 | cut -d\' -f2 | sed "s/\/usbmisc.*//")"
|
|
|
|
[[ -z "${DEVNAME}" ]] && echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : ${ACTION} : ERROR : Not found DEVICE ${DEVNAME}"; [[ -z "${DEVNAME}" ]] && exit 1
|
|
|
|
[[ -z "${DEVNAME}" ]] && echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : ${ACTION} : ERROR : Not found DEVICE ${DEVNAME}"; [[ -z "${DEVNAME}" ]] && exit 1
|
|
|
|
DEV_IDPRODUCT="$(cat /${DEVNAME}/../idProduct)"
|
|
|
|
DEV_IDPRODUCT="$(cat /${DEVNAME}/../idProduct)"
|
|
|
|
DEV_IDVENDOR="$(cat /${DEVNAME}/../idVendor)"
|
|
|
|
DEV_IDVENDOR="$(cat /${DEVNAME}/../idVendor)"
|
|
|
|
DEV_SERIAL="$(cat /${DEVNAME}/../serial)"
|
|
|
|
DEV_SERIAL="$(cat /${DEVNAME}/../serial)"
|
|
|
|
@ -40,7 +39,7 @@ init_printer(){
|
|
|
|
# PRINTER_LP="/dev/$(cat /${DEVNAME}/usbmisc/*/uevent | grep DEVNAME | cut -d= -f2)"
|
|
|
|
# PRINTER_LP="/dev/$(cat /${DEVNAME}/usbmisc/*/uevent | grep DEVNAME | cut -d= -f2)"
|
|
|
|
PRINTER_LP="/dev/usb/${PRINTER_LP}"
|
|
|
|
PRINTER_LP="/dev/usb/${PRINTER_LP}"
|
|
|
|
[[ ${PRINTER_MDL} == "LBP810" ]] && PRINTER_MDL="LBP1120"
|
|
|
|
[[ ${PRINTER_MDL} == "LBP810" ]] && PRINTER_MDL="LBP1120"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : init_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : init_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
|
|
|
|
[[ ${PRINTER_MDL} ]] || exit 1
|
|
|
|
[[ ${PRINTER_MDL} ]] || exit 1
|
|
|
|
[[ ${PRINTER_CLS} == "PRINTER" ]] || exit 1
|
|
|
|
[[ ${PRINTER_CLS} == "PRINTER" ]] || exit 1
|
|
|
|
[[ ${PRINTER_CMD} == "CAPT" ]] || exit 1
|
|
|
|
[[ ${PRINTER_CMD} == "CAPT" ]] || exit 1
|
|
|
|
@ -49,28 +48,28 @@ init_printer(){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
auto_detect_capt_lp(){
|
|
|
|
auto_detect_capt_lp(){
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : auto_detect_lp"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : auto_detect_lp"
|
|
|
|
for DEV_LP in /dev/usb/lp*; do
|
|
|
|
for DEV_LP in /dev/usb/lp*; do
|
|
|
|
INFODEV="$(udevadm info -a -n ${DEV_LP} 2>/dev/null)"
|
|
|
|
INFODEV="$(udevadm info -a -n ${DEV_LP} 2>/dev/null)"
|
|
|
|
DEV_IEEE1284_ID="$(echo "${INFODEV}" | grep ATTRS{ieee1284_id} | head -1 | grep -o '".*"' | tr -d '"' | tr ";" "\n" 2>/dev/null)"
|
|
|
|
DEV_IEEE1284_ID="$(echo "${INFODEV}" | grep ATTRS{ieee1284_id} | head -1 | grep -o '".*"' | tr -d '"' | tr ";" "\n" 2>/dev/null)"
|
|
|
|
PRINTER_MDL="$(echo "${DEV_IEEE1284_ID}" | grep MDL | head -1 | cut -d: -f2 2>/dev/null)"
|
|
|
|
PRINTER_MDL="$(echo "${DEV_IEEE1284_ID}" | grep MDL | head -1 | cut -d: -f2 2>/dev/null)"
|
|
|
|
PRINTER_CMD="$(echo "${DEV_IEEE1284_ID}" | grep CMD | head -1 | cut -d: -f2 2>/dev/null)"
|
|
|
|
PRINTER_CMD="$(echo "${DEV_IEEE1284_ID}" | grep CMD | head -1 | cut -d: -f2 2>/dev/null)"
|
|
|
|
[[ ${PRINTER_CMD} == "CAPT" ]] && DEVNAME="$(udevadm info -a -n ${DEV_LP} | grep "looking at" | head -1 | cut -d\' -f2 | sed "s/\/usbmisc.*//")" && echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Auto detect CAPT printer: ${DEV_LP}" || echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Printer: ${DE_LP} is not CAPT !"
|
|
|
|
[[ ${PRINTER_CMD} == "CAPT" ]] && DEVNAME="$(udevadm info -a -n ${DEV_LP} | grep "looking at" | head -1 | cut -d\' -f2 | sed "s/\/usbmisc.*//")" && echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Auto detect CAPT printer: ${DEV_LP}" || echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Printer: ${DE_LP} is not CAPT !"
|
|
|
|
done
|
|
|
|
done
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Удалить CAPT принтер, который определился и установился автоматически без CCPD
|
|
|
|
# Удалить CAPT принтер, который определился и установился автоматически без CCPD
|
|
|
|
remove_not_ccpdcapt(){
|
|
|
|
remove_not_ccpdcapt(){
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_not_ccpdcapt : ${PRINTER_NAME}"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_not_ccpdcapt : ${PRINTER_NAME}"
|
|
|
|
PRINTER_NOTCCP=$(LC_ALL=en_US.UTF-8 lpstat -v 2>/dev/null | grep " usb://.*${DEV_SERIAL}.*" | head -1 | cut -d: -f1 | cut -d" " -f3)
|
|
|
|
PRINTER_NOTCCP=$(LC_ALL=en_US.UTF-8 lpstat -v 2>/dev/null | grep " usb://.*${DEV_SERIAL}.*" | head -1 | cut -d: -f1 | cut -d" " -f3)
|
|
|
|
[[ -n ${PRINTER_NOTCCP} ]] && lpadmin -x "${PRINTER_NOTCCP}" && echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_not_ccpdcapt : REMOVE : ${PRINTER_NOTCCP}"
|
|
|
|
[[ -n ${PRINTER_NOTCCP} ]] && lpadmin -x "${PRINTER_NOTCCP}" && echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_not_ccpdcapt : REMOVE : ${PRINTER_NOTCCP}"
|
|
|
|
# LC_ALL=en_US.UTF-8 lpstat -v "${PRINTER_NAME}" 2>/dev/null | grep -q " usb://.*${DEV_SERIAL}.*" | head -1 && lpadmin -x "${PRINTER_NAME}" && echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_not_ccpdcapt : REMOVE : ${PRINTER_NAME}"
|
|
|
|
# LC_ALL=en_US.UTF-8 lpstat -v "${PRINTER_NAME}" 2>/dev/null | grep -q " usb://.*${DEV_SERIAL}.*" | head -1 && lpadmin -x "${PRINTER_NAME}" && echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_not_ccpdcapt : REMOVE : ${PRINTER_NAME}"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
add_printer(){
|
|
|
|
add_printer(){
|
|
|
|
# Сделать проверку, если принтер существует с одинаковым именем, но другой адрес ${PRINTER_LP}
|
|
|
|
# Сделать проверку, если принтер существует с одинаковым именем, но другой адрес ${PRINTER_LP}
|
|
|
|
if ! LC_ALL=en_US.UTF-8 lpstat -v "${PRINTER_NAME}" &>/dev/null; then
|
|
|
|
if ! LC_ALL=en_US.UTF-8 lpstat -v "${PRINTER_NAME}" &>/dev/null; then
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : add_printer : ${PRINTER_NAME}"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : add_printer : ${PRINTER_NAME}"
|
|
|
|
NAME_URI="ccp://localhost:59687"
|
|
|
|
NAME_URI="ccp://localhost:59687"
|
|
|
|
NAME_PPD=$(lpinfo --make-and-model ${PRINTER_NAME_PPD} -m | head -1 | cut -d" " -f1)
|
|
|
|
NAME_PPD=$(lpinfo --make-and-model ${PRINTER_NAME_PPD} -m | head -1 | cut -d" " -f1)
|
|
|
|
# NAME_PPD=$(basename -- $(grep -H ${PRINTER_NAME} /usr/share/cups/model/*.ppd | head -1 | cut -d: -f1))
|
|
|
|
# NAME_PPD=$(basename -- $(grep -H ${PRINTER_NAME} /usr/share/cups/model/*.ppd | head -1 | cut -d: -f1))
|
|
|
|
@ -97,7 +96,7 @@ remove_printer(){
|
|
|
|
while read PRINTER_DEV_LP_CAPT; do
|
|
|
|
while read PRINTER_DEV_LP_CAPT; do
|
|
|
|
if [[ ! -e "${PRINTER_DEV_LP_CAPT}" ]] || echo "${DEVNAME}" | grep -q "/dev/usb/lp"; then
|
|
|
|
if [[ ! -e "${PRINTER_DEV_LP_CAPT}" ]] || echo "${DEVNAME}" | grep -q "/dev/usb/lp"; then
|
|
|
|
PRINTER_NAME=$(cat /etc/ccpd.conf | grep -B1 "^DevicePath" | head -1 | tr -d "<&>" | cut -d" " -f2)
|
|
|
|
PRINTER_NAME=$(cat /etc/ccpd.conf | grep -B1 "^DevicePath" | head -1 | tr -d "<&>" | cut -d" " -f2)
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_printer : ${ACTION} : ${DEVNAME} : ${PRINTER_DEV_LP_CAPT} : ${PRINTER_NAME}"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_printer : ${ACTION} : ${DEVNAME} : ${PRINTER_DEV_LP_CAPT} : ${PRINTER_NAME}"
|
|
|
|
cupsdisable -E "${PRINTER_NAME}" 2>/dev/null
|
|
|
|
cupsdisable -E "${PRINTER_NAME}" 2>/dev/null
|
|
|
|
cupsreject -E "${PRINTER_NAME}" 2>/dev/null
|
|
|
|
cupsreject -E "${PRINTER_NAME}" 2>/dev/null
|
|
|
|
ccpdadmin -x "${PRINTER_NAME}" 2>/dev/null
|
|
|
|
ccpdadmin -x "${PRINTER_NAME}" 2>/dev/null
|
|
|
|
@ -110,7 +109,7 @@ remove_printer(){
|
|
|
|
done <<< "$(systemctl -q is-enabled ccpd.service && [[ -f /etc/ccpd.conf ]] && cat /etc/ccpd.conf | grep "^DevicePath" | cut -d" " -f2 | xargs)"
|
|
|
|
done <<< "$(systemctl -q is-enabled ccpd.service && [[ -f /etc/ccpd.conf ]] && cat /etc/ccpd.conf | grep "^DevicePath" | cut -d" " -f2 | xargs)"
|
|
|
|
# Удалить все принтеры CCP
|
|
|
|
# Удалить все принтеры CCP
|
|
|
|
while read PRINTER_CCP; do
|
|
|
|
while read PRINTER_CCP; do
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_printer : REMOVE PRINTER CCP: ${PRINTER_CCP}"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_printer : REMOVE PRINTER CCP: ${PRINTER_CCP}"
|
|
|
|
# cupsdisable -E "${PRINTER_CCP}" 2>/dev/null
|
|
|
|
# cupsdisable -E "${PRINTER_CCP}" 2>/dev/null
|
|
|
|
# cupsreject -E "${PRINTER_CCP}" 2>/dev/null
|
|
|
|
# cupsreject -E "${PRINTER_CCP}" 2>/dev/null
|
|
|
|
# ccpdadmin -x "${PRINTER_CCP}"
|
|
|
|
# ccpdadmin -x "${PRINTER_CCP}"
|
|
|
|
@ -124,7 +123,7 @@ start_captstatusui(){
|
|
|
|
DESKTOP_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.desktop"
|
|
|
|
DESKTOP_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.desktop"
|
|
|
|
SERVICE_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.service"
|
|
|
|
SERVICE_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.service"
|
|
|
|
# Создаем кнопку запуска captstatusui
|
|
|
|
# Создаем кнопку запуска captstatusui
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : start_captstatusui : ${PATH_APPLICATION}/${DESKTOP_CAPTSTATUSUI}"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : start_captstatusui : ${PATH_APPLICATION}/${DESKTOP_CAPTSTATUSUI}"
|
|
|
|
echo '[Desktop Entry]
|
|
|
|
echo '[Desktop Entry]
|
|
|
|
Type=Application
|
|
|
|
Type=Application
|
|
|
|
Exec=captstatusui -P '${PRINTER_NAME}'
|
|
|
|
Exec=captstatusui -P '${PRINTER_NAME}'
|
|
|
|
@ -167,7 +166,7 @@ stop_captstatusui(){
|
|
|
|
NAME_CAPTSTATUSUI="captstatusui-${PRINTER_NAME}"
|
|
|
|
NAME_CAPTSTATUSUI="captstatusui-${PRINTER_NAME}"
|
|
|
|
DESKTOP_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.desktop"
|
|
|
|
DESKTOP_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.desktop"
|
|
|
|
SERVICE_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.service"
|
|
|
|
SERVICE_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.service"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : stop_captstatusui : ${PATH_APPLICATION}/${DESKTOP_CAPTSTATUSUI}"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : stop_captstatusui : ${PATH_APPLICATION}/${DESKTOP_CAPTSTATUSUI}"
|
|
|
|
[[ -n ${LOGIN_USER} ]] && systemctl -q --machine=${LOGIN_USER}@.host --user disable --now ${SERVICE_CAPTSTATUSUI} 2>/dev/null
|
|
|
|
[[ -n ${LOGIN_USER} ]] && systemctl -q --machine=${LOGIN_USER}@.host --user disable --now ${SERVICE_CAPTSTATUSUI} 2>/dev/null
|
|
|
|
systemctl --global disable ${SERVICE_CAPTSTATUSUI}
|
|
|
|
systemctl --global disable ${SERVICE_CAPTSTATUSUI}
|
|
|
|
# rm -f "${XDG_AUTOSTART}/${DESKTOP_CAPTSTATUSUI}"
|
|
|
|
# rm -f "${XDG_AUTOSTART}/${DESKTOP_CAPTSTATUSUI}"
|
|
|
|
@ -183,11 +182,12 @@ stop_captstatusui(){
|
|
|
|
### ::: M A I N ::: ###
|
|
|
|
### ::: M A I N ::: ###
|
|
|
|
###############################
|
|
|
|
###############################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[[ -n ${SSC_ARGV0} ]] && { [[ -f /usr/bin/bash ]] && /usr/bin/bash --version | grep -q ^"GNU bash" || exit 1; }
|
|
|
|
[[ -d ${SSC_EXTRACT_DIR} ]] && rm -rf "${SSC_EXTRACT_DIR}"
|
|
|
|
[[ -d ${SSC_EXTRACT_DIR} ]] && rm -rf "${SSC_EXTRACT_DIR}"
|
|
|
|
[[ -n ${SSC_ARGV0} ]] && PKGNAME=${SSC_ARGV0##*/} && PKGPATH=${SSC_ARGV0%/*} || { PKGNAME=${0##*/} && PKGPATH=${0%/*}; }
|
|
|
|
[[ -z ${SELF_FILE} ]] && [[ -n ${SSC_ARGV0} ]] && SELF_FILE=${SSC_ARGV0} && SELF_NAME=${SSC_ARGV0##*/} && SELF_PATH=${SSC_ARGV0%/*} || { SELF_FILE=${0} && SELF_NAME=${0##*/} && SELF_PATH=${0%/*}; }
|
|
|
|
|
|
|
|
|
|
|
|
# Проверка на суперпользователя
|
|
|
|
# Проверка на суперпользователя
|
|
|
|
#[[ $USER != 'root' ]] && exec sudo "${PKGNAME}"
|
|
|
|
#[[ $USER != 'root' ]] && exec sudo "${SELF_NAME}"
|
|
|
|
|
|
|
|
|
|
|
|
PATH_LOG="/var/log/cups/printers_setup.log"
|
|
|
|
PATH_LOG="/var/log/cups/printers_setup.log"
|
|
|
|
exec 3>&1 4>&2
|
|
|
|
exec 3>&1 4>&2
|
|
|
|
@ -197,7 +197,7 @@ stop_captstatusui(){
|
|
|
|
[[ -n $1 ]] && ACTION="$1" || ACTION="add"
|
|
|
|
[[ -n $1 ]] && ACTION="$1" || ACTION="add"
|
|
|
|
[[ -n $2 ]] && DEVNAME="$2" || auto_detect_capt_lp
|
|
|
|
[[ -n $2 ]] && DEVNAME="$2" || auto_detect_capt_lp
|
|
|
|
|
|
|
|
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Start: ${ACTION} : ${DEVNAME}"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Start: ${ACTION} : ${DEVNAME}"
|
|
|
|
|
|
|
|
|
|
|
|
# Пользователь под которым мы вошли в ситему
|
|
|
|
# Пользователь под которым мы вошли в ситему
|
|
|
|
LOGIN_USER=$(who | grep "(:[[:digit:]])" | grep "tty" | head -1 | cut -d" " -f1) #"
|
|
|
|
LOGIN_USER=$(who | grep "(:[[:digit:]])" | grep "tty" | head -1 | cut -d" " -f1) #"
|
|
|
|
@ -225,7 +225,7 @@ stop_captstatusui(){
|
|
|
|
stop_captstatusui
|
|
|
|
stop_captstatusui
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
esac
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Finish : ${ACTION} : ${DEVNAME}"
|
|
|
|
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Finish : ${ACTION} : ${DEVNAME}"
|
|
|
|
|
|
|
|
|
|
|
|
#udevadm info -a -n /dev/usb/lp0 | grep "ATTRS{ieee1284_id}"
|
|
|
|
#udevadm info -a -n /dev/usb/lp0 | grep "ATTRS{ieee1284_id}"
|
|
|
|
#lpstat -v
|
|
|
|
#lpstat -v
|
|
|
|
|