Quellcode durchsuchen

Remove all remaining uses of sysconfig.sh

Matthias Schiffer vor 10 Jahren
Ursprung
Commit
f73d727ae6

+ 1 - 1
package/gluon-autoupdater/Makefile

@@ -11,7 +11,7 @@ include $(GLUONDIR)/include/package.mk
 define Package/gluon-autoupdater
   SECTION:=gluon
   CATEGORY:=Gluon
-  DEPENDS:=+gluon-core +gluon-cron +lua-platform-info +opkg +ecdsautils +!BUSYBOX_CONFIG_SHA512SUM:coreutils-sha512sum
+  DEPENDS:=+gluon-core +gluon-cron +opkg +ecdsautils +!BUSYBOX_CONFIG_SHA512SUM:coreutils-sha512sum
   TITLE:=Automatically update firmware
 endef
 

+ 1 - 1
package/gluon-core/Makefile

@@ -12,7 +12,7 @@ define Package/gluon-core
   SECTION:=gluon
   CATEGORY:=Gluon
   TITLE:=Base files of Gluon
-  DEPENDS:=+gluon-config +luci-lib-core +odhcp6c
+  DEPENDS:=+gluon-config +lua-platform-info +luci-lib-core +odhcp6c
 endef
 
 define Package/gluon-core/description

+ 40 - 40
package/gluon-core/files/lib/gluon/upgrade/core/initial/001-sysconfig

@@ -1,42 +1,42 @@
-#!/bin/sh
-
-. /lib/gluon/functions/sysconfig.sh
-. /lib/ar71xx.sh
-
-
-get_primary_mac() {
-	case "$(ar71xx_board_name)" in
-		tl-wdr3600|tl-wdr4300)
-			cat /sys/class/ieee80211/phy1/macaddress
-			;;
-		*)
-			cat /sys/class/ieee80211/phy0/macaddress
-			;;
-	esac
-}
-
-iface_exists() {
-	local name="$1"
-	ip link show dev "${name//.*/}" >/dev/null 2>&1
-}
-
-case "$(ar71xx_board_name)" in
-	nanostation-m)
-		# It's more convenient to swap the ports for these devices so WAN is the PoE port
-		lan_ifname="$(uci get network.wan.ifname)"
-		wan_ifname="$(uci get network.lan.ifname)"
-		;;
-	*)
-		lan_ifname="$(uci get network.lan.ifname)"
-		wan_ifname="$(uci get network.wan.ifname)"
-		;;
-esac
-
-if [ -n "$wan_ifname" ] && iface_exists "$wan_ifname"; then
-	[ -z "$lan_ifname" ] || sysconfig_set lan_ifname "$lan_ifname"
-	sysconfig_set wan_ifname "$wan_ifname"
+#!/usr/bin/lua
+
+local sysconfig = require 'gluon.sysconfig'
+local gluon_util = require 'gluon.util'
+
+local fs = require 'luci.fs'
+local uci = require('luci.model.uci').cursor()
+local util = require 'luci.util'
+
+local platform_info = require 'platform_info'
+
+
+local board_name = platform_info.get_board_name()
+
+
+if board_name == 'tl-wdr3600' or board_name == 'tl-wdr4300' then
+   sysconfig.primary_mac = util.trim(fs.readfile('/sys/class/ieee80211/phy1/macaddress'))
 else
-	sysconfig_set wan_ifname "$lan_ifname"
-fi
+   sysconfig.primary_mac = util.trim(fs.readfile('/sys/class/ieee80211/phy0/macaddress'))
+end
+
 
-sysconfig_set primary_mac "$(get_primary_mac)"
+local function iface_exists(name)
+   return (gluon_util.exec('ip', 'link', 'show', 'dev', (name:gsub('%..*$', ''))) == 0)
+end
+
+
+local lan_ifname = uci:get('network', 'lan', 'ifname')
+local wan_ifname = uci:get('network', 'wan', 'ifname')
+
+
+if board_name == 'nanostation-m' then
+   lan_ifname, wan_ifname = wan_ifname, lan_ifname
+end
+
+
+if wan_ifname and iface_exists(wan_ifname) then
+   sysconfig.wan_ifname = wan_ifname
+   sysconfig.lan_ifname = lan_ifname
+else
+   sysconfig.wan_ifname = lan_ifname
+end

+ 26 - 22
package/gluon-core/files/lib/gluon/upgrade/core/initial/011-gluon-network

@@ -1,32 +1,36 @@
-#!/bin/sh
+#!/usr/bin/lua
 
+local sysconfig = require 'gluon.sysconfig'
 
-. /lib/functions.sh
-. /lib/gluon/functions/sysconfig.sh
-. /lib/ar71xx.sh
+local uci = require('luci.model.uci').cursor()
+local util = require 'luci.util'
 
+local nixio = require 'nixio'
+local platform_info = require 'platform_info'
 
-uci_remove network lan
-uci_remove network wan
 
-uci_add network interface wan
-uci_set network wan ifname "$(sysconfig wan_ifname)"
-uci_set network wan type 'bridge'
-uci_set network wan proto 'dhcp'
+uci:delete('network', 'lan')
+uci:delete('network', 'wan')
 
+uci:section('network', 'interface', 'wan',
+	    {
+	       ifname = sysconfig.wan_ifname,
+	       type = 'bridge',
+	       proto = 'dhcp',
+	    }
+)
 
-case "$(ar71xx_board_name)" in
-tl-wr1043nd|\
-tl-wdr3600|\
-tl-wdr4300) # fix up duplicate mac addresses
-	local mainaddr=$(sysconfig primary_mac)
-	local oIFS="$IFS"; IFS=":"; set -- $mainaddr; IFS="$oIFS"
-	local b2mask=0x02
 
-	local wanaddr=$(printf "%02x:%s:%s:%02x:%s:%02x" $(( 0x$1 | $b2mask )) $2 $3 $(( (0x$4 + 1) % 0x100 )) $5 $(( (0x$6 + 1) % 0x100 )) )
+if util.contains({'tl-wr1043nd', 'tl-wdr3600', 'tl-wdr4300'}, platform_info.get_board_name()) then
+   -- fix up duplicate mac addresses
+   local m1, m2, m3, m4, m5, m6 = string.match(sysconfig.primary_mac, '(%x%x):(%x%x):(%x%x):(%x%x):(%x%x):(%x%x)')
+   m1 = nixio.bit.bor(tonumber(m1, 16), 0x02)
+   m4 = (tonumber(m4, 16)+1) % 0x100
+   m6 = (tonumber(m6, 16)+1) % 0x100
+   local wanaddr = string.format('%02x:%s:%s:%02x:%s:%02x', m1, m2, m3, m4, m5, m6)
 
-	uci_set network wan macaddr "$wanaddr"
-	;;
-esac
+   uci:set('network', 'wan', 'macaddr', wanaddr)
+end
 
-uci_commit network
+uci:save('network')
+uci:commit('network')

+ 33 - 30
package/gluon-legacy/files/lib/gluon/upgrade/core/legacy/001-sysconfig

@@ -1,39 +1,42 @@
-#!/bin/sh
+#!/usr/bin/lua
 
-. /lib/gluon/functions/sysconfig.sh
-. /lib/ar71xx.sh
+local sysconfig = require 'gluon.sysconfig'
+local gluon_util = require 'gluon.util'
+local site = require 'gluon.site_config'
 
+local fs = require 'luci.fs'
+local uci = require('luci.model.uci').cursor()
+local util = require 'luci.util'
 
-get_primary_mac() {
-    case "$(ar71xx_board_name)" in
-	tl-wdr3600|tl-wdr4300)
-	    cat /sys/class/ieee80211/phy1/macaddress
-	    ;;
-	*)
-	    cat /sys/class/ieee80211/phy0/macaddress
-	    ;;
-    esac
-}
+local platform_info = require 'platform_info'
 
-iface_exists() {
-	local name="$1"
-	ip link show dev "${name//.*/}" >/dev/null 2>&1
-}
 
-remove_bat0() {
-	sed -r -e 's/(^| )bat0( |$)/ /g' -e 's/^ | $//g'
-}
+local board_name = platform_info.get_board_name()
 
 
-mesh_section="$(lua -e 'print(require("gluon.site_config").legacy.mesh_ifname)')"
-mesh_ifname="$(uci get "network.${mesh_section}.ifname" | remove_bat0)"
-wan_ifname="$(uci get network.wan.ifname)"
-
-if [ -n "$wan_ifname" ] && iface_exists "$wan_ifname"; then
-	[ -z "$mesh_ifname" ] || sysconfig_set lan_ifname "$mesh_ifname"
-	sysconfig_set wan_ifname "$wan_ifname"
+if board_name == 'tl-wdr3600' or board_name == 'tl-wdr4300' then
+   sysconfig.primary_mac = util.trim(fs.readfile('/sys/class/ieee80211/phy1/macaddress'))
 else
-	sysconfig_set wan_ifname "$mesh_ifname"
-fi
+   sysconfig.primary_mac = util.trim(fs.readfile('/sys/class/ieee80211/phy0/macaddress'))
+end
+
+
+local function iface_exists(name)
+   return (gluon_util.exec('ip', 'link', 'show', 'dev', (name:gsub('%..*$', ''))) == 0)
+end
+
+local function remove_bat0(iface)
+   return util.trim(string.gsub(' ' .. iface .. ' ', ' bat0 ', ' '))
+end
 
-sysconfig_set primary_mac "$(get_primary_mac)"
+
+local lan_ifname = remove_bat0(uci:get('network', site.legacy.mesh_ifname, 'ifname'))
+local wan_ifname = uci:get('network', 'wan', 'ifname')
+
+
+if wan_ifname and iface_exists(wan_ifname) then
+   sysconfig.wan_ifname = wan_ifname
+   sysconfig.lan_ifname = lan_ifname
+else
+   sysconfig.wan_ifname = lan_ifname
+end

+ 17 - 15
package/gluon-legacy/files/lib/gluon/upgrade/core/legacy/011-gluon-network

@@ -1,22 +1,24 @@
-#!/bin/sh
+#!/usr/bin/lua
 
+local sysconfig = require 'gluon.sysconfig'
 
-. /lib/functions.sh
-. /lib/gluon/functions/sysconfig.sh
+local uci = require('luci.model.uci').cursor()
+local util = require 'luci.util'
 
+local nixio = require 'nixio'
+local platform_info = require 'platform_info'
 
-case "$(ar71xx_board_name)" in
-tl-wr1043nd|\
-tl-wdr3600|\
-tl-wdr4300) # fix up duplicate mac addresses
-	local mainaddr=$(sysconfig primary_mac)
-	local oIFS="$IFS"; IFS=":"; set -- $mainaddr; IFS="$oIFS"
-	local b2mask=0x02
 
-	local wanaddr=$(printf "%02x:%s:%s:%02x:%s:%02x" $(( 0x$1 | $b2mask )) $2 $3 $(( (0x$4 + 1) % 0x100 )) $5 $(( (0x$6 + 1) % 0x100 )) )
+if util.contains({'tl-wr1043nd', 'tl-wdr3600', 'tl-wdr4300'}, platform_info.get_board_name()) then
+   -- fix up duplicate mac addresses
+   local m1, m2, m3, m4, m5, m6 = string.match(sysconfig.primary_mac, '(%x%x):(%x%x):(%x%x):(%x%x):(%x%x):(%x%x)')
+   m1 = nixio.bit.bor(tonumber(m1, 16), 0x02)
+   m4 = (tonumber(m4, 16)+1) % 0x100
+   m6 = (tonumber(m6, 16)+1) % 0x100
+   local wanaddr = string.format('%02x:%s:%s:%02x:%s:%02x', m1, m2, m3, m4, m5, m6)
 
-	uci_set network wan macaddr "$wanaddr"
-	;;
-esac
+   uci:set('network', 'wan', 'macaddr', wanaddr)
+end
 
-uci_commit network
+uci:save('network')
+uci:commit('network')

+ 20 - 12
package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/initial/010-mesh

@@ -1,18 +1,26 @@
-#!/bin/sh
+#!/usr/bin/lua
 
-. /lib/functions.sh
-. /lib/gluon/functions/sysconfig.sh
+local sysconfig = require 'gluon.sysconfig'
+local uci = require('luci.model.uci').cursor()
 
-lan_ifname="$(sysconfig lan_ifname)"
 
-uci_add network interface client
+local ifname
 
-if [ -n "$lan_ifname" ]; then
-	uci_set network client ifname "$lan_ifname bat0"
+if sysconfig.lan_ifname then
+   ifname = sysconfig.lan_ifname .. ' bat0'
 else
-	uci_set network client ifname "bat0"
-fi
+   ifname = 'bat0'
+end
 
-uci_set network client type 'bridge'
-uci_set network client proto 'dhcpv6'
-uci_set network client reqprefix 'no'
+
+uci:section('network', 'interface', 'client',
+	    {
+	       ifname = ifname,
+	       type = 'bridge',
+	       proto = 'dhcpv6',
+	       reqprefix = 'no',
+	    }
+)
+
+uci:save('network')
+uci:commit('network')

+ 1 - 1
package/gluon-setup-mode/Makefile

@@ -14,7 +14,7 @@ define Package/gluon-setup-mode
   SECTION:=gluon
   CATEGORY:=Gluon
   TITLE:=Setup mode
-  DEPENDS:=+gluon-core +lua-platform-info +uhttpd +dnsmasq +ip
+  DEPENDS:=+gluon-core +uhttpd +dnsmasq +ip
 endef
 
 define Package/gluon-setup-mode/description

+ 1 - 3
package/gluon-setup-mode/files/etc/init.d/gluon-setup-mode

@@ -35,7 +35,7 @@ setup_network() {
 		config_foreach delete_interface interface
 
 		uci_add network interface setup
-		uci_set network setup ifname "$(sysconfig setup_ifname)"
+		uci_set network setup ifname "$(lua -e 'print(require("gluon.sysconfig").setup_ifname)')"
 		uci_set network setup type 'bridge'
 		uci_set network setup proto 'static'
 		uci_set network setup ipaddr "$SETUP_MODE_ADDR"
@@ -55,8 +55,6 @@ setup_network() {
 }
 
 start() {
-	. /lib/gluon/functions/sysconfig.sh
-
 	enable=0
 	config_load gluon-setup-mode
 	config_foreach check_enable setup_mode

+ 1 - 1
package/gluon-status-page/Makefile

@@ -12,7 +12,7 @@ define Package/gluon-status-page
   SECTION:=gluon
   CATEGORY:=Gluon
   TITLE:=Adds a status page showing information about the node.
-  DEPENDS:=+gluon-core +lua-platform-info +uhttpd
+  DEPENDS:=+gluon-core +uhttpd
 endef
 
 define Package/gluon-status-page/description