aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files/files/lib/functions
diff options
context:
space:
mode:
authorTomasz Maciej Nowak <tomek_n@o2.pl>2019-03-21 18:03:38 +0100
committerChristian Lamparter <chunkeey@gmail.com>2019-04-06 19:14:05 +0200
commitafef17e24de61278cfe120d9b278907ac98b6a73 (patch)
tree66b06edea2bc8dd14a5250b6b00b2955b15995a3 /package/base-files/files/lib/functions
parent32689e93c4ec39a8c5cc29716c0b2cfe9ee578e5 (diff)
downloadupstream-afef17e24de61278cfe120d9b278907ac98b6a73.tar.gz
upstream-afef17e24de61278cfe120d9b278907ac98b6a73.tar.bz2
upstream-afef17e24de61278cfe120d9b278907ac98b6a73.zip
base-files: add leds migration
Currently leds migration scripts in ar71xx and lantiq share a lot of logic and introducing leds migration to another target would mean copying this code, again. Therefore add common logic to library in base-files package. Suggested-by: Petr Štetiar <ynezz@true.cz> Signed-off-by: Petr Štetiar <ynezz@true.cz> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Diffstat (limited to 'package/base-files/files/lib/functions')
-rw-r--r--package/base-files/files/lib/functions/migrations.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/package/base-files/files/lib/functions/migrations.sh b/package/base-files/files/lib/functions/migrations.sh
new file mode 100644
index 0000000000..b180a0242f
--- /dev/null
+++ b/package/base-files/files/lib/functions/migrations.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+. /lib/functions.sh
+
+migrate_led_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}"
+
+ logger -t led-migration "sysfs option of LED \"${name}\" updated to ${new_sysfs}"
+ done;
+}
+
+migrate_leds() {
+ config_load system
+ config_foreach migrate_led_sysfs led "$@"
+}
+
+migrations_apply() {
+ local realm="$1"
+ [ -n "$(uci changes ${realm})" ] && uci -q commit ${realm}
+}