#!/bin/bash # Read FIFO argument from CLI FIFO=${1} shift if [ ! -e "${FIFO}" ]; then echo "Fifo file ${FIFO} does not exist, cannot run" exit 1 fi # Start kdialog with all other arguments and get dbus reference dbusRef=$(kdialog "$@" 100) if [ $? -ne 0 ] || [ -z "${dbusRef}" ]; then echo "Failed to start kdialog" exit 1 fi # Setup cancellation point for this script quitfn() { qdbus ${dbusRef} close 2>/dev/null exit 0 } trap quitfn SIGINT trap quitfn SIGTERM # Read Fifo for new values or a quit message while read -t 5 line < "${FIFO}"; do if [ $? != 0 ]; then echo "Timed out, closing" break fi if echo "${line}" | grep -q "idle"; then continue fi if echo "${line}" | grep -q "quit"; then break fi if ! qdbus ${dbusRef} Set "" value "${line}"; then break fi done # Cleanup rm -f "${FIFO}" quitfn