diff --git a/package/gluon-autoupdater/Makefile b/package/gluon-autoupdater/Makefile index 09c398dece14f76e6b40012658eafb5489325077..43d9beb903efff892c57e1c0f897243bd3dbe8d6 100644 --- a/package/gluon-autoupdater/Makefile +++ b/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)) diff --git a/package/gluon-autoupdater/autoupdater.pl b/package/gluon-autoupdater/autoupdater.pl new file mode 100644 index 0000000000000000000000000000000000000000..88bac9f6d1d8c340582c750cb53fa7e8524aea2a --- /dev/null +++ b/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 diff --git a/package/gluon-autoupdater/files/etc/config/autoupdater b/package/gluon-autoupdater/files/etc/config/autoupdater index 9702ef2142c6f3da57c3dddc06aaf10ac690ab51..b894baf3c30950e65e918f4e20cbc40a6ada2c4a 100644 --- a/package/gluon-autoupdater/files/etc/config/autoupdater +++ b/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' diff --git a/package/gluon-autoupdater/files/usr/sbin/autoupdate b/package/gluon-autoupdater/files/usr/sbin/autoupdate index f7a2208b0768f0308e8e1e85b741b1ab9ae1e380..93406f242bc75987dfab515e6746e3a7c7ed87e7 100755 --- a/package/gluon-autoupdater/files/usr/sbin/autoupdate +++ b/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