[PATCH v3] WebUI: Show firmware update notification in WebUI

Adrian Schmutzler freifunk at adrianschmutzler.de
Sa Jun 10 00:19:25 CEST 2017


Displays update notification for user, but does not provide
automatic updates. Version comparison is based on string match,
so build dates are not relevant.

Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>

Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
 src/packages/fff/fff-web/Makefile                  |  2 +-
 .../fff/fff-web/files/www/ssl/cgi-bin/header       | 26 ++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/packages/fff/fff-web/Makefile b/src/packages/fff/fff-web/Makefile
index 5772f87..723d9a9 100644
--- a/src/packages/fff/fff-web/Makefile
+++ b/src/packages/fff/fff-web/Makefile
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fff-web
-PKG_VERSION:=0.0.3
+PKG_VERSION:=0.0.4
 PKG_RELEASE:=2
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/fff-web
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
index 92bdbc6..b5f49e2 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
@@ -1,6 +1,8 @@
 #!/usr/bin/haserl
 
 <%
+. /etc/community.cfg
+. /etc/firmware_release
 echo -en "Content-Type: text/html\r\n\r\n"
 nav_entry() {
 	script_file="/cgi-bin/$1"
@@ -12,6 +14,20 @@ nav_entry() {
 
 HOSTNAME=$(uci -q get 'system. at system[0].hostname')
 
+NOW=$(date +%s)
+#Check if new Firmware check older then 1 day
+if [ ! -s /tmp/fwcheck ] || [ "$(cat /tmp/fwcheck)" -lt "$NOW" ] ; then
+        rm -f /tmp/isupdate
+        NEXTUPDATE=$(($(date +%s)+86400))
+        echo $NEXTUPDATE > /tmp/fwcheck
+        /usr/bin/wget "${UPGRADE_PATH}/release.nfo" -P /tmp -T 2
+        VERSION=$(cat /tmp/release.nfo|awk -F: '/VERSION:/ { print $2 }')
+        rm -f /tmp/release.nfo
+        if [ "$VERSION" != "$FIRMWARE_VERSION" -a -n "$VERSION" ]; then
+                echo $VERSION > /tmp/isupdate
+        fi
+fi
+
 %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
@@ -47,3 +63,13 @@ HOSTNAME=$(uci -q get 'system. at system[0].hostname')
 	<div id="container">
 		<div id="primarycontainer">
 			<div id="primarycontent">
+			<%
+			if [ -s /tmp/isupdate ] ; then
+				VERSION=$(cat /tmp/isupdate)
+			%>
+				<table style="width: 100%;">
+					<tr>
+						<td><span style="font-size: 16pt; color:#FF0000">Es ist eine neue Firmware für deinen Freifunkrouter verfügbar.<br />Alte Version: <%= ${FIRMWARE_VERSION} %> - Neue Version: <%= ${VERSION} %> <br /><a href="upgrade.html">Firmware jetzt updaten</a></td>
+					</tr>
+				</table>
+			<% fi %>
-- 
2.7.4



Mehr Informationen über die Mailingliste franken-dev