You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xmppipe/test/script/send-message.sh

46 lines
876 B
Bash

#!/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 -r "$FROM" -u "$XMPPIPE_USERNAME" -p "$XMPPIPE_PASSWORD" "$MUC" < $TMPDIR/stdin > $TMPDIR/stdout