01_led_migration 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/sh
  2. #
  3. # Copyright (C) 2013 OpenWrt.org
  4. #
  5. LED_OPTIONS_CHANGED=0
  6. . /lib/functions.sh
  7. do_led_update_sysfs()
  8. {
  9. local cfg=$1; shift
  10. local tuples="$@"
  11. local sysfs
  12. local name
  13. config_get sysfs $cfg sysfs
  14. config_get name $cfg name
  15. [ -z "$sysfs" ] && return
  16. for tuple in $tuples; do
  17. local old=${tuple%=*}
  18. local new=${tuple#*=}
  19. local new_sysfs
  20. new_sysfs=$(echo ${sysfs} | sed "s/${old}/${new}/")
  21. [ "$new_sysfs" = "$sysfs" ] && continue
  22. uci set system.${cfg}.sysfs="${new_sysfs}"
  23. LED_OPTIONS_CHANGED=1
  24. logger -t led-migration "sysfs option of LED \"${name}\" updated to ${new_sysfs}"
  25. done;
  26. }
  27. do_internet_led_rename()
  28. {
  29. config_load system
  30. [ -n $(config_get led_internet name) ] || return
  31. [ -z $(config_get led_dsl name) ] || return
  32. uci rename system.led_internet=led_dsl
  33. uci set system.led_dsl.name=dsl
  34. LED_OPTIONS_CHANGED=1
  35. logger -t led-migration "internet led renamed to dsl"
  36. }
  37. migrate_leds()
  38. {
  39. config_load system
  40. config_foreach do_led_update_sysfs led "$@"
  41. }
  42. case "$(board_name)" in
  43. arcadyan,arv452cqw|\
  44. arcadyan,arv7510pw22|\
  45. arcadyan,arv7519rw22|\
  46. arcadyan,arv752dpw|\
  47. arcadyan,arv752dpw22|\
  48. alphanetworks,asl56026|\
  49. bt,homehub-v2b|\
  50. bt,homehub-v3a|\
  51. bt,homehub-v5a|\
  52. avm,fritz7360sl|\
  53. arcadyan,vg3503j)
  54. do_internet_led_rename
  55. ;;
  56. netgear,dgn3500|\
  57. netgear,dgn3500b)
  58. migrate_leds "dgn3500:blue:wireless=dgn3500:green:wireless"
  59. ;;
  60. *)
  61. ;;
  62. esac
  63. [ "$LED_OPTIONS_CHANGED" = "1" ] && uci commit system
  64. exit 0