#!/bin/bash DOT_ANNOYME=~/.annoyme NAME=$1 EC=2 onexit() { rm -f "$DOT_ANNOYME/$NAME.script" rm -f "$DOT_ANNOYME/$NAME.pid" rm -f "$DOT_ANNOYME/$NAME.desc" rm -f "$DOT_ANNOYME/$NAME.out" kill $SLEEPID 2>/dev/null exit $EC } trap onexit EXIT INT QUIT TERM ABRT mkdir -p $DOT_ANNOYME echo "#!/bin/bash" > "$DOT_ANNOYME/$NAME.script" while read -r LINE; do echo "$LINE" >> "$DOT_ANNOYME/$NAME.script" done chmod +x "$DOT_ANNOYME/$NAME.script" echo "$$" > "$DOT_ANNOYME/$NAME.pid" echo "$2" > "$DOT_ANNOYME/$NAME.desc" onsuccess() { echo "User intervention successful." 1>&2 cat "$DOT_ANNOYME/$NAME.out" EC=0 exit } onfailure() { echo "User intervention failed." 1>&2 EC=1 exit } trap onsuccess SIGUSR1 trap onfailure SIGUSR2 echo "Waiting for user intervention using annoyme" 1>&2 notify-send -a "$NAME" "$NAME: User intervention required" "$2" sleep 3h & SLEEPID=$! wait $SLEEPID echo "User intervention timed out." 1>&2 notify-send -a "$NAME" "$NAME: User intervention request timed out."