2018-10-16 17:42:13 -05:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# TODO Add comments
|
|
|
|
|
|
|
|
# Default variables
|
|
|
|
unset channel
|
|
|
|
unset message
|
|
|
|
unset passphrase
|
|
|
|
export file="/usr/local/etc/TheRaven/raven.conf"
|
2020-09-10 16:20:40 -05:00
|
|
|
export port="8373"
|
2018-10-16 17:42:13 -05:00
|
|
|
export host="localhost"
|
|
|
|
|
|
|
|
# Show help
|
|
|
|
function usage() {
|
|
|
|
echo "Usage: $0 -c chan -m msg [ -f file -t host -p port ]"
|
|
|
|
echo " $0 -h" echo "Add -v to increase verbosity"
|
|
|
|
echo "Passphrase is pulled from Raven config, set to ${file}"
|
|
|
|
}
|
|
|
|
|
|
|
|
# Parse arguments
|
|
|
|
while getopts 'c:hm:p:P:t:v' OPTION; do
|
|
|
|
case "$OPTION" in
|
|
|
|
c) channel="${OPTARG}" ;;
|
|
|
|
f) file="${OPTARG}" ;;
|
|
|
|
h) usage; exit 0 ;;
|
|
|
|
m) message="${OPTARG}" ;;
|
|
|
|
p) port="${OPTARG}" ;;
|
|
|
|
t) host="${OPTARG}" ;;
|
|
|
|
v) set -x ;;
|
|
|
|
*) usage; exit 1 ;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
# Check inputs.
|
|
|
|
if [ -z "$channel" ] || [ -z "$message" ] || [ -z "$file" ] || [ -z "$port" ] || [ -z "$host" ]; then
|
|
|
|
usage;
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Try to get the passphrase.
|
|
|
|
passphrase="$(egrep -m 1 '^password=' "$file" | sed 's/^password=//')"
|
|
|
|
if [ -z "$passphrase" ]; then
|
|
|
|
echo Couldn\'t identify passphrase.
|
|
|
|
exit 2;
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Send format to socket
|
|
|
|
printf "%s %s %s" "$passphrase" "$channel" "$message" | ncat "$host" "$port"
|