mirror of https://github.com/msantos/xmppipe
test: send using FIFOs between parent/child
parent
ff86eb8f9a
commit
e4fcd47b20
@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
TMPDIR=$(mktemp -d)
|
||||
|
||||
mkdir -p $TMPDIR
|
||||
mkfifo $TMPDIR/stdin
|
||||
mkfifo $TMPDIR/stdout
|
||||
|
||||
trap atexit 0
|
||||
atexit() {
|
||||
rm -rf $TMPDIR
|
||||
}
|
||||
|
||||
wait_presence() {
|
||||
TO=$1
|
||||
MESSAGE=$2
|
||||
while read l; do
|
||||
IFS=":/"
|
||||
set -- $l
|
||||
if [ "$1" = "p" ] && [ "$2" = "available" ] && [ "$4" = "$TO" ]; then
|
||||
echo "$MESSAGE"
|
||||
exit 0
|
||||
fi
|
||||
done < $TMPDIR/stdout
|
||||
}
|
||||
|
||||
while getopts "o:r:t:u:p:" opt; do
|
||||
case $opt in
|
||||
o) MUC="$OPTARG" ;;
|
||||
r) FROM="$OPTARG" ;;
|
||||
t) TO="$OPTARG" ;;
|
||||
u) XMPPIPE_USERNAME="$OPTARG" ;;
|
||||
p) XMPPIPE_PASSWORD="$OPTARG" ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $((OPTIND-1))
|
||||
|
||||
wait_presence "$TO" "$@" > $TMPDIR/stdin &
|
||||
xmppipe -o $MUC -r "$FROM" -u "$XMPPIPE_USERNAME" -p "$XMPPIPE_PASSWORD" < $TMPDIR/stdin > $TMPDIR/stdout
|
Loading…
Reference in New Issue