From 8474b8ded0414c5442ddda81872c8569616c9f3a Mon Sep 17 00:00:00 2001 From: Johannes Rudolph <johannes.rudolph@gmx.com> Date: Sat, 4 Mar 2017 10:01:10 +0100 Subject: [PATCH] add selected hood to banner write banner to tmp folder in the RAM add cronjob --- banner/Makefile | 3 +- banner/files/lib/ffnw/banner/banner | 1 + .../files/lib/gluon/upgrade/550-ffnw-banner | 7 ++ banner/files/usr/lib/micron.d/ffnw-banner | 1 + .../luasrc/lib/gluon/upgrade/550-ffnw-banner | 63 ------------------ banner/luasrc/usr/sbin/ffnw-banner | 64 +++++++++++++++++++ 6 files changed, 75 insertions(+), 64 deletions(-) create mode 100755 banner/files/lib/gluon/upgrade/550-ffnw-banner create mode 100644 banner/files/usr/lib/micron.d/ffnw-banner delete mode 100755 banner/luasrc/lib/gluon/upgrade/550-ffnw-banner create mode 100755 banner/luasrc/usr/sbin/ffnw-banner diff --git a/banner/Makefile b/banner/Makefile index b1f26a4..f0fc101 100644 --- a/banner/Makefile +++ b/banner/Makefile @@ -9,9 +9,10 @@ PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) include $(GLUONDIR)/include/package.mk define Package/ffnw-banner - SECTION:=config + SECTION:= networke CATEGORY:=Freifunk Nordwest TITLE:=Nordwest freifunk shell banner + DEPENDS:= ffnw-hoodselector endef define Package/ffnw-banner/description diff --git a/banner/files/lib/ffnw/banner/banner b/banner/files/lib/ffnw/banner/banner index f0c66ff..f9da7d6 100644 --- a/banner/files/lib/ffnw/banner/banner +++ b/banner/files/lib/ffnw/banner/banner @@ -16,4 +16,5 @@ ------------------------------------------------------ %A %B +%C ------------------------------------------------------ diff --git a/banner/files/lib/gluon/upgrade/550-ffnw-banner b/banner/files/lib/gluon/upgrade/550-ffnw-banner new file mode 100755 index 0000000..d061914 --- /dev/null +++ b/banner/files/lib/gluon/upgrade/550-ffnw-banner @@ -0,0 +1,7 @@ +#!/bin/sh + +rm /etc/banner +touch /tmp/ffnw-banner +ln -s /tmp/ffnw-banner /etc/banner + +/usr/sbin/ffnw-banner \ No newline at end of file diff --git a/banner/files/usr/lib/micron.d/ffnw-banner b/banner/files/usr/lib/micron.d/ffnw-banner new file mode 100644 index 0000000..7896819 --- /dev/null +++ b/banner/files/usr/lib/micron.d/ffnw-banner @@ -0,0 +1 @@ +* * * * * /usr/sbin/ffnw-banner diff --git a/banner/luasrc/lib/gluon/upgrade/550-ffnw-banner b/banner/luasrc/lib/gluon/upgrade/550-ffnw-banner deleted file mode 100755 index 993df8f..0000000 --- a/banner/luasrc/lib/gluon/upgrade/550-ffnw-banner +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/lua - - - -local srcFile = "/lib/ffnw/banner/banner" -local srcBanner = io.open(srcFile, "r") - -if srcBanner~=nil then - local delDir = "/lib/ffnw/banner/" - local desFile = "/etc/banner" - local openwrtRelease = io.open("/etc/openwrt_release", "r") - local gluonVersion = io.open("/lib/gluon/gluon-version", "r") - local gluonRelease = io.open("/lib/gluon/release", "r") - local infoHeader = {} - infoHeader["openwrtRelease"] = "" - infoHeader["revision"] = "" - infoHeader["gluonVersion"] = "" - infoHeader["gluonRelease"] = "" - - if openwrtRelease~=nil then - for line in openwrtRelease:lines() do - -- Get openwrtRelease - if line:match("DISTRIB_DESCRIPTION") then - for v in string.gmatch(line, "([^=]+)") do - if not v:match("DISTRIB_DESCRIPTION") then - infoHeader["openwrtRelease"] = string.gsub(v,"'","") - end - end - end - -- Get openwrt revision - if line:match("DISTRIB_REVISION") then - for v in string.gmatch(line, "([^=]+)") do - if not v:match("DISTRIB_REVISION") then - infoHeader["revision"] = string.gsub(v,"'","") - end - end - end - end - end - - if gluonVersion~=nil then - for line in gluonVersion:lines() do - if line ~= nil then - infoHeader["gluonVersion"] = line - end - end - end - - if gluonRelease~=nil then - for line in gluonRelease:lines() do - if line ~= nil then - infoHeader["gluonRelease"] = line - end - end - end - - local firstLine ="OpenWRT Version: " .. infoHeader["openwrtRelease"].. " (" .. infoHeader["revision"] .. ")" - local secondLine ="Gluon Version: " .. infoHeader["gluonVersion"] .. " Gluon Release: " .. infoHeader["gluonRelease"] - os.execute('sed -i \'/%A/c\\' .. firstLine .. '\' ' .. srcFile) - os.execute('sed -i \'/%B/c\\' .. secondLine .. '\' ' .. srcFile) - os.execute('cp '..srcFile..' '..desFile) - os.execute('rm -rf '..delDir) -end diff --git a/banner/luasrc/usr/sbin/ffnw-banner b/banner/luasrc/usr/sbin/ffnw-banner new file mode 100755 index 0000000..8d4dac1 --- /dev/null +++ b/banner/luasrc/usr/sbin/ffnw-banner @@ -0,0 +1,64 @@ +#!/usr/bin/lua + + +local srcFile = "/lib/ffnw/banner/banner" +local desFile = "/tmp/ffnw-banner" + + +local uci = require('luci.model.uci').cursor() +os.execute('cp '..srcFile..' '..desFile) + +local srcBanner = io.open(desFile, "r") +local openwrtRelease = io.open("/etc/openwrt_release", "r") +local gluonVersion = io.open("/lib/gluon/gluon-version", "r") +local gluonRelease = io.open("/lib/gluon/release", "r") +local infoHeader = {} +infoHeader["openwrtRelease"] = "" +infoHeader["revision"] = "" +infoHeader["gluonVersion"] = "" +infoHeader["gluonRelease"] = "" +infoHeader["hoodname"] = uci:get('hoodselector', 'hoodselector', 'hood') + +if openwrtRelease~=nil then + for line in openwrtRelease:lines() do + -- Get openwrtRelease + if line:match("DISTRIB_DESCRIPTION") then + for v in string.gmatch(line, "([^=]+)") do + if not v:match("DISTRIB_DESCRIPTION") then + infoHeader["openwrtRelease"] = string.gsub(v,"'","") + end + end + end + -- Get openwrt revision + if line:match("DISTRIB_REVISION") then + for v in string.gmatch(line, "([^=]+)") do + if not v:match("DISTRIB_REVISION") then + infoHeader["revision"] = string.gsub(v,"'","") + end + end + end + end +end + +if gluonVersion~=nil then + for line in gluonVersion:lines() do + if line ~= nil then + infoHeader["gluonVersion"] = line + end + end +end + +if gluonRelease~=nil then + for line in gluonRelease:lines() do + if line ~= nil then + infoHeader["gluonRelease"] = line + end + end +end + +local firstLine ="OpenWRT Version: " .. infoHeader["openwrtRelease"].. " (" .. infoHeader["revision"] .. ")" +local secondLine ="Gluon Version: " .. infoHeader["gluonVersion"] .. " Gluon Release: " .. infoHeader["gluonRelease"] +local thirdLine = "Selected Hood: " .. infoHeader["hoodname"] +os.execute('sed -i \'/%A/c\\' .. firstLine .. '\' ' .. desFile) +os.execute('sed -i \'/%B/c\\' .. secondLine .. '\' ' .. desFile) +os.execute('sed -i \'/%C/c\\' .. thirdLine .. '\' ' .. desFile) -- GitLab