dotool/dotoold
2022-10-22 18:37:37 +01:00

26 lines
661 B
Bash
Executable file

#!/bin/sh
if [ $# != 0 ]; then
echo 'dotoold runs dotool reading from a pipe for dotoolc to write to.
dotoold will exit immediately if the pipe is already being read.
The path used for the pipe is $DOTOOL_PIPE else /tmp/dotool_pipe.
' > /dev/stderr
[ "$1" = -h ] || [ "$1" = --help ]; exit
fi
fifo_being_read(){
[ -p "$1" ] && /bin/echo 1<>"$1" >"$1"
}
p="${DOTOOL_PIPE:-/tmp/dotool_pipe}"
if fifo_being_read "$p" 2> /dev/null; then
echo 'dotoold: another instance is already connected' > /dev/stderr
exit 1
fi
rm -rf "$p" || exit 1
trap 'rm -rf "$p"; trap - EXIT; exit' EXIT INT TERM HUP
mkfifo -m 660 "$p" || exit 1
dotool <> "$p" &
wait
pkill -P $$