lanturtle-modules/modules/script2http

117 lines
2.5 KiB
Bash
Executable File

#!/bin/bash /usr/lib/turtle/turtle_module
VERSION="1.0"
DESCRIPTION="Post script output via HTTP"
CONF=/tmp/httppost.form
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_HELP=2}
: ${DIALOG_EXTRA=3}
: ${DIALOG_ITEM_HELP=4}
: ${DIALOG_ESC=255}
function start {
if [ -s /etc/config/httppost ]
then
httppost_url=$(uci get httppost.url)
/bin/bash /etc/turtle/httppost/script.sh > /tmp/httppost_output
CONTENT=`cat /tmp/httppost_output`
wget --post-data "content=$CONTENT" $httppost_url -O -
else
touch /etc/config/httppost
echo "httppost not configured"
fi
}
function stop {
echo stop>>/dev/null
}
function status {
echo 0
}
function configure {
mkdir -p /etc/turtle/httppost/
if [ -s /etc/config/httppost ]
then
httppost_url=$(uci get httppost.url)
else
touch /etc/config/httppost
fi
dialog --ok-label "Submit" \
--extra-button \
--extra-label "Edit Script" \
--help-button \
--title "Script to HTTP Post Configuration" \
--form "\n\
URL: Location of script to accept post.\n \n\n" 11 60 1\
"URL:" 1 1 "$httppost_url" 1 12 200 0 \
2>$CONF
return=$?
case $return in
$DIALOG_OK)
cat $CONF | {
read -r httppost_url
touch /etc/config/httppost
uci set httppost.url="$httppost_url"
uci commit httppost
rm $CONF
clear
};;
$DIALOG_CANCEL)
rm $CONF
clear
exit;;
$DIALOG_HELP)
dialog --title "Help" \
--msgbox "\
This module sends the output of the specified command as an HTTP post to the specified URL\n\
\n\
PHP Content Save to File Example:\n\n\
<?php \n \$content=\$_POST['content'];\n \$file="output.txt";\n \$Saved_File=fopen(\$file, 'a');\n fwrite(\$Saved_File, \$content);\n fclose(\$Saved_File); \n?>\n\
" 20 60
configure
;;
$DIALOG_EXTRA)
if [ ! -e /etc/turtle/httppost/script.sh ]; then
touch /etc/turtle/httppost/script.sh
echo -e "\
# The output of this script will be sent by http by script2http \n\
# Example: uptime; ifconfig | grep inet\n\
" > /etc/turtle/httppost/script.sh
fi
dialog \
--title "HTTP Post Script: /etc/turtle/httppost/script.sh" \
--editbox /etc/turtle/httppost/script.sh 18 72\
2>$CONF
return=$?
case $return in
$DIALOG_OK)
cat $CONF | {
cat $CONF > /etc/turtle/httppost/script.sh
rm $CONF
clear
configure
};;
$DIALOG_CANCEL)
rm $CONF
clear
configure;;
$DIALOG_ESC)
clear;;
esac
;;
$DIALOG_ESC)
clear;;
esac
}