ソースを参照

gluon-autoupdater: read config from site.conf

Nils Schneider 10 年 前
コミット
fd4222f65d

+ 3 - 1
package/gluon-autoupdater/Makefile

@@ -23,11 +23,13 @@ define Build/Configure
 endef
 
 define Build/Compile
+	$(GLUON_CONFIGURE) autoupdater.pl > $(PKG_BUILD_DIR)/autoupdater.sh
 endef
 
 define Package/gluon-autoupdater/install
 	$(CP) ./files/* $(1)/
-	chmod +x $(1)/usr/sbin/autoupdate
+	$(INSTALL_DIR) $(1)/lib/gluon/upgrade/autoupdater/initial
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/autoupdater.sh $(1)/lib/gluon/upgrade/autoupdater/initial/010-autoupdater
 endef
 
 $(eval $(call BuildPackage,gluon-autoupdater))

+ 23 - 0
package/gluon-autoupdater/autoupdater.pl

@@ -0,0 +1,23 @@
+my $cfg = $CONFIG->{autoupdater};
+
+print <<'END';
+#/bin/sh
+
+uci -q batch <<EOF
+delete autoupdater.default
+set autoupdater.default=autoupdater
+END
+
+for (qw(enabled branch url probability good_signatures)) {
+  print 'set autoupdater.default.' . $_ . '=' . $cfg->{$_} . "\n";
+}
+
+for (@{$cfg->{pubkeys}}) {
+  print 'add_list autoupdater.default.pubkey=' . $_ . "\n";
+}
+
+print <<END;
+
+commit autoupdater
+EOF
+END

+ 1 - 1
package/gluon-autoupdater/files/etc/config/autoupdater

@@ -1,4 +1,4 @@
-config autoupdater
+config autoupdater default
         option enabled 1
         option branch "stable"
         option url 'http://[fdef:ffc0:3dd7::8]/~freifunk/firmware/autoupdate'

+ 6 - 6
package/gluon-autoupdater/files/usr/sbin/autoupdate

@@ -1,11 +1,11 @@
 #!/bin/sh
 
-if test $(uci get autoupdater.@autoupdater[0].enabled) != 1; then
+if test $(uci get autoupdater.default.enabled) != 1; then
   echo "autoupdater is disabled"
   exit 0
 fi
 
-PROBABILITY=$(uci get autoupdater.@autoupdater[0].probability)
+PROBABILITY=$(uci get autoupdater.default.probability)
 
 if test "a$1" != "a-f"; then
   echo | awk "END{srand();exit rand() > $PROBABILITY}"
@@ -15,10 +15,10 @@ if test "a$1" != "a-f"; then
   fi
 fi
 
-BASE=$(uci get autoupdater.@autoupdater[0].url)
-PUBKEYS=$(uci get autoupdater.@autoupdater[0].pubkey)
-GOOD_SIGNATURES=$(uci get autoupdater.@autoupdater[0].good_signatures)
-BRANCH=$(uci get autoupdater.@autoupdater[0].branch)
+BASE=$(uci get autoupdater.default.url)
+PUBKEYS=$(uci get autoupdater.default.pubkey)
+GOOD_SIGNATURES=$(uci get autoupdater.default.good_signatures)
+BRANCH=$(uci get autoupdater.default.branch)
 
 VERSION_FILE=/lib/gluon/release