From 8f7b59d787635ebeb23f34ade54c3ea80a9efd41 Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 19 Jan 2014 23:33:52 +0100
Subject: [PATCH] gluon-simple-tc: add missing defaults on every upgrade

---
 package/gluon-simple-tc/Makefile                  |  6 +++---
 .../gluon-simple-tc/{initial.pl => invariant.pl}  | 15 +++++----------
 2 files changed, 8 insertions(+), 13 deletions(-)
 rename package/gluon-simple-tc/{initial.pl => invariant.pl} (64%)

diff --git a/package/gluon-simple-tc/Makefile b/package/gluon-simple-tc/Makefile
index 0a5847a18..98609551a 100644
--- a/package/gluon-simple-tc/Makefile
+++ b/package/gluon-simple-tc/Makefile
@@ -27,13 +27,13 @@ define Build/Configure
 endef
 
 define Build/Compile
-	$(GLUON_CONFIGURE) initial.pl > $(PKG_BUILD_DIR)/initial.sh
+	$(GLUON_CONFIGURE) invariant.pl > $(PKG_BUILD_DIR)/invariant.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
+	$(INSTALL_DIR) $(1)/lib/gluon/upgrade/simple-tc/invariant
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/invariant.sh $(1)/lib/gluon/upgrade/simple-tc/invariant/010-site-defaults
 endef
 
 $(eval $(call BuildPackage,gluon-simple-tc))
diff --git a/package/gluon-simple-tc/initial.pl b/package/gluon-simple-tc/invariant.pl
similarity index 64%
rename from package/gluon-simple-tc/initial.pl
rename to package/gluon-simple-tc/invariant.pl
index fdffdc849..6b91a9511 100644
--- a/package/gluon-simple-tc/initial.pl
+++ b/package/gluon-simple-tc/invariant.pl
@@ -1,23 +1,18 @@
 my $cfg = $CONFIG->{simple_tc};
 
-print <<'END';
-#/bin/sh
-
-uci -q batch <<EOF
-END
+print "#/bin/sh\n\n";
 
 foreach my $name (sort keys %{$cfg}) {
   my $interface = $cfg->{$name};
 
+  print "uci -q get gluon-simple-tc.$name >/dev/null || uci -q batch <<EOF\n";
   print "set gluon-simple-tc.$name=interface\n";
 
   for (qw(enabled ifname limit_egress limit_ingress)) {
     print "set gluon-simple-tc.$name.$_=$interface->{$_}\n";
   }
-}
 
-print <<END;
+  print "EOF\n\n";
+}
 
-commit gluon-simple-tc
-EOF
-END
+print "uci commit gluon-simple-tc\n";
-- 
GitLab