From f82850fc374a4360c84cc51439de97d16f5845df Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Mon, 7 Jul 2014 22:22:48 +0200
Subject: [PATCH] gluon-mesh-batman-adv: convert mesh config upgrade script to
 Lua

---
 .../mesh-batman-adv/invariant/011-mesh        | 87 +++++++++++--------
 1 file changed, 53 insertions(+), 34 deletions(-)

diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/011-mesh b/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/011-mesh
index 6bbf63f69..565505d20 100755
--- a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/011-mesh
+++ b/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/011-mesh
@@ -1,45 +1,64 @@
-#!/bin/sh
+#!/usr/bin/lua
 
-. /lib/functions.sh
-. /lib/gluon/functions/sysconfig.sh
-. /lib/gluon/functions/sysctl.sh
+local sysconfig = require 'gluon.sysconfig'
+local sysctl = require 'gluon.sysctl'
+local uci = require('luci.model.uci').cursor()
 
 
-uci_remove batman-adv bat0
-uci_add batman-adv mesh bat0
-uci_set batman-adv bat0 orig_interval '5000'
-uci_set batman-adv bat0 gw_mode 'client'
-uci_commit batman-adv
+uci:delete('batman-adv', 'bat0')
+uci:section('batman-adv', 'mesh', 'bat0',
+	    {
+		    orig_interval = 5000,
+		    gw_mode = 'client',
+	    }
+)
+uci:save('batman-adv')
+uci:commit('batman-adv')
 
-uci_set network client macaddr "$(sysconfig primary_mac)"
-uci_set network client peerdns '1'
 
-uci_remove network bat0
-uci_add network interface bat0
-uci_set network bat0 ifname 'bat0'
-uci_set network bat0 proto 'none'
-uci_set network bat0 macaddr "$(sysconfig primary_mac)"
-uci_commit network
+uci:set('network', 'client', 'macaddr', sysconfig.primary_mac)
+uci:set('network', 'client', 'peerdns', 1)
 
-uci_remove firewall client
-uci_add firewall zone client
-uci_set firewall client name 'client'
-uci add_list firewall.client.network='client'
-uci_set firewall client input 'ACCEPT'
-uci_set firewall client output 'ACCEPT'
-uci_set firewall client forward 'REJECT'
+uci:delete('network', 'bat0')
+uci:section('network', 'interface', 'bat0',
+	    {
+		    ifname = 'bat0',
+		    proto = 'none',
+		    macaddr = sysconfig.primary_mac,
+	    }
+)
 
-uci_commit firewall
+uci:save('network')
+uci:commit('network')
 
-uci_set dhcp '@dnsmasq[0]' boguspriv '0'
-uci_set dhcp '@dnsmasq[0]' localise_queries '0'
-uci_set dhcp '@dnsmasq[0]' rebind_protection '0'
+uci:delete('firewall', 'client')
+uci:section('firewall', 'zone', 'client',
+	    {
+		    name = 'client',
+		    network = {'client'},
+		    input = 'ACCEPT',
+		    output = 'ACCEPT',
+		    forward = 'REJECT',
+	    }
+)
+uci:save('firewall')
+uci:commit('firewall')
 
-uci_remove dhcp client
-uci_add dhcp dhcp client
-uci_set dhcp client interface 'client'
-uci_set dhcp client ignore '1'
-uci_commit dhcp
+local dnsmasq = uci:get_first('dhcp', 'dnsmasq')
+uci:set('dhcp', dnsmasq, 'boguspriv', 0)
+uci:set('dhcp', dnsmasq, 'localise_queries', 0)
+uci:set('dhcp', dnsmasq, 'rebind_protection', 0)
 
+uci:delete('dhcp', 'client')
+uci:section('dhcp', 'dhcp', 'client',
+	    {
+		    interface = 'client',
+		    ignore = 1,
+	    }
+)
 
-sysctl_set net.ipv6.conf.br-client.forwarding 0
+uci:save('dhcp')
+uci:commit('dhcp')
+
+
+sysctl.set('net.ipv6.conf.br-client.forwarding', 0)
-- 
GitLab