diff options
Diffstat (limited to 'package/base-files/files/lib/functions/migrations.sh')
-rw-r--r-- | package/base-files/files/lib/functions/migrations.sh | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/package/base-files/files/lib/functions/migrations.sh b/package/base-files/files/lib/functions/migrations.sh index da10d2be5a..d2f1bc19aa 100644 --- a/package/base-files/files/lib/functions/migrations.sh +++ b/package/base-files/files/lib/functions/migrations.sh @@ -29,7 +29,8 @@ migrate_led_sysfs() { } remove_devicename_led_sysfs() { - local cfg="$1" + local cfg="$1"; shift + local exceptions="$@" local sysfs local name local new_sysfs @@ -37,8 +38,14 @@ remove_devicename_led_sysfs() { config_get sysfs ${cfg} sysfs config_get name ${cfg} name + # only continue if two or more colons are present echo "${sysfs}" | grep -q ":.*:" || return + for exception in ${exceptions}; do + # no change if exceptions provided as argument are found for devicename + echo "${sysfs}" | grep -q "^${exception}:" && return + done + new_sysfs=$(echo ${sysfs} | sed "s/^[^:]*://") uci set system.${cfg}.sysfs="${new_sysfs}" @@ -53,7 +60,7 @@ migrate_leds() { remove_devicename_leds() { config_load system - config_foreach remove_devicename_led_sysfs led + config_foreach remove_devicename_led_sysfs led "$@" } migrations_apply() { |