From 903d1575503b8d525c49b423c77a99d035898d1b Mon Sep 17 00:00:00 2001
From: Nils Schneider <nils@nilsschneider.net>
Date: Thu, 3 Oct 2013 21:10:29 +0200
Subject: [PATCH] gluon-simple-tc: create initial config from site.conf

---
 package/gluon-simple-tc/Makefile   |  3 +++
 package/gluon-simple-tc/initial.pl | 21 +++++++++++++++++++++
 2 files changed, 24 insertions(+)
 create mode 100644 package/gluon-simple-tc/initial.pl

diff --git a/package/gluon-simple-tc/Makefile b/package/gluon-simple-tc/Makefile
index c496682d9..9c194f903 100644
--- a/package/gluon-simple-tc/Makefile
+++ b/package/gluon-simple-tc/Makefile
@@ -27,10 +27,13 @@ define Build/Configure
 endef
 
 define Build/Compile
+	$(GLUON_CONFIGURE) initial.pl > $(PKG_BUILD_DIR)/initial.sh
 endef
 
 define Package/gluon-simple-tc/install
 	$(CP) ./files/* $(1)/
+	$(INSTALL_DIR) $(1)/lib/gluon/upgrade/simple-tc/initial
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/initial.sh $(1)/lib/gluon/upgrade/simple-tc/initial/010-site-defaults
 endef
 
 $(eval $(call BuildPackage,gluon-simple-tc))
diff --git a/package/gluon-simple-tc/initial.pl b/package/gluon-simple-tc/initial.pl
new file mode 100644
index 000000000..820029f75
--- /dev/null
+++ b/package/gluon-simple-tc/initial.pl
@@ -0,0 +1,21 @@
+my $cfg = $CONFIG->{simple_tc};
+
+print <<'END';
+#/bin/sh
+
+uci -q batch <<EOF
+END
+
+while (($name, $interface) = each %{$cfg}) {
+  print "set gluon-simple-tc.$name=interface\n";
+
+  for (qw(ifname enabled limit_egress limit_ingress)) {
+    print "set gluon-simple-tc.$name.$_=$interface->{$_}\n";
+  }
+}
+
+print <<END;
+
+commit gluon-simple-tc
+EOF
+END
-- 
GitLab