[PATCH v2 2/3] gateway.d: Add configuration script for meta information

Adrian Schmutzler mail at adrianschmutzler.de
Mi Mär 20 15:58:42 CET 2019


Hallo Fabian,

mit diesem Patch habe ich naheliegenderweise Probleme, weil wir ja parallel die /etc/config/gateway haben und die /etc/config/fff .

Ich persönlich bin jetzt kein Fan davon, alles doppelt in "gateway" und "fff" zu haben.

Man könnte das allerdings als Kompromiss ohne Weiteres so lösen, dass beides geht. Siehe unten.

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf Of
> Fabian Bläse
> Sent: Montag, 18. März 2019 22:54
> To: franken-dev at freifunk.net
> Subject: [PATCH v2 2/3] gateway.d: Add configuration script for meta
> information
> 
> This adds a configuration script for applying hostname,
> coordinates, hoodname and contact address.
> 
> Signed-off-by: Fabian Bläse <fabian at blaese.de>
> ---
>  .../fff-gateway/files/etc/gateway.d/01-meta   | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
>  create mode 100644 src/packages/fff/fff-gateway/files/etc/gateway.d/01-
> meta
> 
> diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> new file mode 100644
> index 0000000..1b4209b
> --- /dev/null
> +++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta

Willst du da wirklich 01 nehmen? Vll. wäre 10 besser, vll. will ja doch mal jemand was davor machen. Und ich hätte das dreistellig gemacht, aber das ist vll. spitzfindig.

> @@ -0,0 +1,43 @@
> +configure() {
> +	## set hostname
> +	if name=$(uci -q get gateway. at gateway[0].name); then
> +		uci -q set system. at system[0].hostname="$name"
> +		uci -q set fff.system.hostname="$name"

elif name=$(uci -q get fff.system.hostname); then
	uci -q set system. at system[0].hostname="$name"


> +	else
> +		echo "WARNING: No gateway name set!"
> +	fi
> +
> +	## set contact
> +	if contact=$(uci -q get gateway. at gateway[0].contact); then
> +		uci -q set fff.system.contact="$contact"
> +	else

statt else:
elif ! uci -q get fff.system.contact ; then

> +		echo "WARNING: No contact set!"
> +	fi
> +
> +	## set location
> +	if lat=$(uci -q get gateway. at gateway[0].latitude) && long=$(uci -q get
> gateway. at gateway[0].longitude); then
> +		uci -q set fff.system.latitude="$lat"
> +		uci -q set fff.system.longitude="$long"
> +	else

statt else:
elif ( ! uci -q get fff.system.latitude ) || ( ! uci -q get fff.system.longitude ) ; then

> +		echo "WARNING: No gateway location set!"
> +	fi
> +
> +	## hoodname
> +	if hood=$(uci -q get gateway. at gateway[0].hoodname); then
> +		echo "Setting hood name: $hood"
> +		uci -q set "system. at system[0].hood=$hood"
> +	else
> +		echo "WARNING: No hoodname set!"
> +	fi

Ich nehme den Hood-Namen aus dem JSON und habe kein Lust, den doppelt zu setzen. Man könnte hier entweder einfach die Warnung entfernen oder diese zumindest ändern: "WARNING: No hoodname set in config, falling back to JSON if available!" oder so ...

Bei der Zuordnung im if habe ich jetzt nicht getestet, ob das geht. Ich gehe mal davon aus, dass du das getan hast ...

Beste Grüße

Adrian

> +}
> +
> +apply() {
> +	uci commit system
> +	uci commit fff
> +	echo "$(uci get "system. at system[0].hostname")" >
> /proc/sys/kernel/hostname
> +}
> +
> +revert() {
> +	uci revert system
> +	uci revert fff
> +}
> --
> 2.21.0
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 834 bytes
Beschreibung: nicht verfügbar
URL         : <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190320/5852faa0/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev