hplip/hp-toolbox.wrapper

27 lines
1.1 KiB
Bash

#! /bin/bash
# If possible use the KDE program kdialog
# otherwise fall back to the generic X program xmessage.
# The "..." quotation when calling 'test -x' is crucial
# because calling 'test -x' without explicite empty argument
# (when 'type -p kdialog' fails) would result true.
if test -x "$( type -p kdialog )"
then PopupProgram='kdialog --error'
else PopupProgram='xmessage'
fi
# If hp-toolbox cannot access a hplip device
# then it doesn't show up on the X window system.
# It only shows an 'ERROR...' or 'error...' message on stderr
# but exits nevertheless with zero exit code.
# Note that one cannot grep for '^error' because there are leading
# escape codes (e.g. "esc [ 3 1 ; 0 1 m") in the output lines.
# The "..." quotation when calling 'test -x' is crucial
# because calling 'test -x' without explicite empty argument
# (when 'type -p hp-toolbox' fails) would result true.
if test -x "$( type -p hp-toolbox )"
then hp-toolbox 2>&1 1>/dev/null | grep -q -i 'error' && $PopupProgram 'No HP all-in-one device found (those devices require a special setup).'
else $PopupProgram 'Cannot execute hp-toolbox.'
fi