no longer auto reboots, allows reverting to previous edits (#198)

* updates to config.cgi and jpeg.cgi

* Update config.cgi
This commit is contained in:
virmaior 2022-07-22 14:06:35 +09:00 committed by GitHub
parent 9a96eec5a1
commit 16def56fc9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,26 +7,81 @@ camver=V3
camfirmware=$(tail -n1 /configs/app.ver | cut -f2 -d= ) camfirmware=$(tail -n1 /configs/app.ver | cut -f2 -d= )
hackver=$(cat /opt/wz_mini/usr/bin/app.ver) hackver=$(cat /opt/wz_mini/usr/bin/app.ver)
title="Wyze $camver on $camfirmware running wz_mini $hackver as $HOSTNAME" title="Wyze $camver on $camfirmware running wz_mini $hackver as $HOSTNAME"
updated=false
echo "HTTP/1.1 200" echo "HTTP/1.1 200"
echo -e "Content-type: text/html\n\n" echo -e "Content-type: text/html\n\n"
echo "" echo ""
reboot_camera() {
echo "rebooting camera (refreshing screen in 90 seconds)"
echo '<script type="text/javascript">setTimeout(function(){ document.location.reload (); },90 * 1000)</script>'
exit
}
shft() { shft() {
cd $base_dir # SE loop did not work -- thanks ash!
# https://stackoverflow.com/questions/3690936/change-file-name-suffixes-using-sed/3691279#3691279 suff=8
# Change this '8' to one less than your desired maximum rollover file. while [ "$suff" -gt 0 ] ;
# Must be in reverse order for renames to work (n..1, not 1..n). do
for suff in {8..1} ; do if [[ -f "$1.$suff" ]] ; then
if [[ -f "$1.${suff}" ]] ; then nxt=$((suff + 1))
((nxt = suff + 1)) mv -f "$1.$suff" "$1.$nxt"
mv -f "$1.${suff}" "$1.${nxt}"
fi fi
suff=$((suff-1))
done done
mv -f "$1" "$1.1" mv -f "$1" "$1.1"
} }
function revert_config
{
mv "$hack_ini" "$hack_ini.old"
mv "$hack_ini.$1" "$hack_ini"
}
function revert_menu
{
echo '<a href="revert" >Revert Menu</a>'
echo '<div class="old_configs">'
echo 'Prior Versions : '
xuff=0
while [ "$xuff" -lt 9 ] ;
do
xuff=$((xuff + 1))
if [[ -f "$1.$xuff" ]] ; then
echo '&nbsp;<a href="?action=revert&version='"$xuff"'">'"$xuff</a>"
fi
done
echo '</div>'
}
if [[ $REQUEST_METHOD = 'GET' ]]; then
#since ash does not handle arrays we create variables using eval
IFS='&'
for PAIR in $QUERY_STRING
do
K=$(echo $PAIR | cut -f1 -d=)
VA=$(echo $PAIR | cut -f2 -d=)
eval GET_$K=$VA
done
if [[ "$GET_action" = "reboot" ]]; then
reboot_camera
fi
if [[ "$GET_action" = "revert" ]]; then
revert_config "$GET_version"
fi
fi
#test for post #test for post
if [[ $REQUEST_METHOD = 'POST' ]]; then if [[ $REQUEST_METHOD = 'POST' ]]; then
if [ "$CONTENT_LENGTH" -gt 0 ]; then if [ "$CONTENT_LENGTH" -gt 0 ]; then
@ -81,18 +136,18 @@ if [[ $REQUEST_METHOD = 'POST' ]]; then
shft $hack_ini shft $hack_ini
mv $output $hack_ini mv $output $hack_ini
echo "rebooting! wait a bit -- and go the same url" updated=true
reboot
exit
fi fi
function documentation_to_html function documentation_to_html
{ {
if [[ -f "$www_dir$1.md" ]]; then if [[ -f "$www_dir$1.md" ]]; then
printf '<div class="ii_explain"><pre>' printf '<div class="ii_explain"><pre>'
cat $web_dir$1.md cat "$web_dir$1.md"
printf '</pre></div>' printf '</pre></div>'
fi fi
} }
@ -130,6 +185,7 @@ function html_cam_feed
echo -ne "<html><head><title>$title</title>" echo -ne "<html><head><title>$title</title>"
echo -ne "<style type=\"text/css\">" echo -ne "<style type=\"text/css\">"
cat wz_mini_web.css cat wz_mini_web.css
@ -138,9 +194,18 @@ echo '<script type="text/javascript" src="/config.js" ></script>'
echo -ne "</head>" echo -ne "</head>"
echo -ne '<body>' echo -ne '<body>'
echo -ne "<h1>$title</h1>"; echo -ne "<h1>$title</h1>";
if [ "$updated" = true ];
then
echo '<div class="message_DIV">configuration file updated. <a href="?action=reboot">Reboot<a/> to use changes. Or <a href="#revert">Revert</a> to a prior configuration</div>';
fi
html_cam_feed html_cam_feed
echo -ne '<form name="wz_mini_hack_FORM" method="POST" enctype="application/x-www-form-urlencoded" >' echo -ne '<form name="wz_mini_hack_FORM" method="POST" enctype="application/x-www-form-urlencoded" >'
@ -166,7 +231,11 @@ echo -ne '<input type="submit" name="update" value="Update" />'
echo -ne '</form>' echo -ne '</form>'
revert_menu $hack_ini
html_cam_feed_js html_cam_feed_js
echo -ne '</body></html>' echo -ne '</body></html>'