[OpenWrt-Devel] [PATCH 3/4] ath79: add leds migration script

Tomasz Maciej Nowak tomek_n at o2.pl
Wed Mar 13 12:44:23 EDT 2019


With transition from ar71xx to ath79 some of devices change their naming
of LEDs. When upgrading from ar71xx target images this will require the
user to adjust previously working configuration. This commit adds
migration script which can be used to rename old names to new ones.
With this previously working configuration will be automatically
adjusted, wihtout user intervention.

Signed-off-by: Tomasz Maciej Nowak <tomek_n at o2.pl>
---
 .../etc/uci-defaults/04_led_migration         | 54 +++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 target/linux/ath79/base-files/etc/uci-defaults/04_led_migration

diff --git a/target/linux/ath79/base-files/etc/uci-defaults/04_led_migration b/target/linux/ath79/base-files/etc/uci-defaults/04_led_migration
new file mode 100644
index 0000000000..a17702ac10
--- /dev/null
+++ b/target/linux/ath79/base-files/etc/uci-defaults/04_led_migration
@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+
+LED_OPTIONS_CHANGED=0
+
+. /lib/functions.sh
+
+do_led_update_sysfs()
+{
+	local cfg=$1; shift
+	local tuples="$@"
+	local sysfs
+	local name
+
+	config_get sysfs $cfg sysfs
+	config_get name $cfg name
+
+	[ -z "$sysfs" ] && return
+
+	for tuple in $tuples; do
+		local old=${tuple%=*}
+		local new=${tuple#*=}
+		local new_sysfs
+
+		new_sysfs=$(echo ${sysfs} | sed "s/${old}/${new}/")
+
+		[ "$new_sysfs" = "$sysfs" ] && continue
+
+		uci set system.${cfg}.sysfs="${new_sysfs}"
+		LED_OPTIONS_CHANGED=1
+
+		logger -t led-migration "sysfs option of LED \"${name}\" updated to ${new_sysfs}"
+	done;
+}
+
+migrate_leds()
+{
+	config_load system
+	config_foreach do_led_update_sysfs led "$@"
+}
+
+board=$(board_name)
+
+case "$board" in
+*)
+	return 0
+	;;
+esac
+
+[ "$LED_OPTIONS_CHANGED" = "1" ] && uci commit system
+
+exit 0
-- 
2.21.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list