From fd4222f65d7a656cb4393e3b87000ed7ac33019b Mon Sep 17 00:00:00 2001 From: Nils Schneider <nils@nilsschneider.net> Date: Mon, 30 Sep 2013 23:31:35 +0200 Subject: [PATCH] gluon-autoupdater: read config from site.conf --- package/gluon-autoupdater/Makefile | 4 +++- package/gluon-autoupdater/autoupdater.pl | 23 +++++++++++++++++++ .../files/etc/config/autoupdater | 2 +- .../files/usr/sbin/autoupdate | 12 +++++----- 4 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 package/gluon-autoupdater/autoupdater.pl diff --git a/package/gluon-autoupdater/Makefile b/package/gluon-autoupdater/Makefile index 09c398dec..43d9beb90 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 000000000..88bac9f6d --- /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 9702ef214..b894baf3c 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 f7a2208b0..93406f242 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 -- GitLab