62 lines
1.6 KiB
Bash
Executable File
62 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
source /Users/noahheague/.config/scripts/util/secret.sh
|
|
|
|
REQUESTED_USER=''
|
|
NAME='Webhook'
|
|
PIC=''
|
|
MSG=''
|
|
ENDPOINT='_'
|
|
FILE='_'
|
|
|
|
getUser() {
|
|
/usr/local/bin/gsed -nE "/^\[$REQUESTED_USER\]$/{:l n;/^(\[.*\])?$/q;p;bl}" ~/.config/webhook > /tmp/webhook_config.sh ||
|
|
sed -nE "/^\[$REQUESTED_USER\]$/{:l n;/^(\[.*\])?$/q;p;bl}" ~/.config/webhook > /tmp/webhook_config.sh;
|
|
chmod +x /tmp/webhook_config.sh
|
|
. /tmp/webhook_config.sh
|
|
rm /tmp/webhook_config.sh
|
|
}
|
|
|
|
printUsage() {
|
|
echo ""
|
|
echo "Discord Webhook Wrapper"
|
|
echo "-c Requested premade config to use"
|
|
echo "-n Username to use"
|
|
echo "-p Picture to use"
|
|
echo "-m Message to send"
|
|
echo "-e Endpoint to hit"
|
|
echo ""
|
|
}
|
|
|
|
while getopts 'c:n:p:m:e:f:h' flag; do
|
|
case "${flag}" in
|
|
c) REQUESTED_USER="${OPTARG}"; getUser ;;
|
|
n) NAME="${OPTARG}" ;;
|
|
p) PIC="${OPTARG}" ;;
|
|
m) MSG="${OPTARG}" ;;
|
|
e) ENDPOINT="${OPTARG}" ;;
|
|
f) FILE="${OPTARG}" ;;
|
|
*) printUsage ;;
|
|
esac
|
|
done
|
|
|
|
if [[ "$ENDPOINT" == "_" ]]; then
|
|
echo "Please provide an endpoint url with -e"
|
|
exit 1
|
|
else
|
|
if [[ "$FILE" == "_" ]]; then
|
|
curl -i \
|
|
-H "Accept: multipart/form-data" \
|
|
-H "Content-Type: multipart/form-data" \
|
|
-F "payload_json={\"content\": \"$MSG\", \"username\": \"$NAME\", \"avatar_url\": \"$PIC\"}" \
|
|
"$ENDPOINT" > /dev/null 2>&1;
|
|
else
|
|
curl -i \
|
|
-F "file1=@${FILE}" \
|
|
-H "Accept: multipart/form-data" \
|
|
-H "Content-Type: multipart/form-data" \
|
|
-F "payload_json={\"content\": \"$MSG\", \"username\": \"$NAME\", \"avatar_url\": \"$PIC\"}" \
|
|
"$ENDPOINT" > /dev/null 2>&1;
|
|
fi
|
|
fi
|