watch_up.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #!/bin/sh
  2. LOG_NAME=/opt/wz_mini/log/watch_up
  3. if [[ -e $LOG_NAME.log || -L $LOG_NAME.log ]] ; then
  4. i=0
  5. while [[ -e $LOG_NAME.log.$i || -L $LOG_NAME.log.$i ]] ; do
  6. let i++
  7. done
  8. mv $LOG_NAME.log $LOG_NAME.log.$i
  9. LOG_NAME=$LOG_NAME
  10. fi
  11. touch -- "$LOG_NAME".log
  12. exec 1> $LOG_NAME.log 2>&1
  13. set -x
  14. event="$1"
  15. directory="$2"
  16. file="$3"
  17. case "$event" in
  18. n) date; if [[ "$file" == "img" ]]; then
  19. set -x
  20. #hook the v2
  21. if cat /params/config/.product_config | grep WYZEC1-JZ; then
  22. while [ ! -f /tmp/Upgrade/upgraderun.sh ]
  23. do
  24. # sed -i '/pgrep/,+4d' /tmp/Upgrade/upgraderun.sh
  25. sleep 0.1
  26. done
  27. else
  28. #t31
  29. while [ ! -f /tmp/Upgrade/upgraderun.sh ]
  30. do
  31. pkill -f "sh /tmp/Upgrade/upgraderun.sh"
  32. mv /tmp/Upgrade/upgraderun.sh /tmp/Upgrade/upgraderun.old
  33. echo "squashed upgraderun.sh"
  34. sleep 0.1
  35. done
  36. echo "start countdown"
  37. secs=30
  38. endTime=$(( $(date +%s) + secs ))
  39. while [ $(date +%s) -lt $endTime ]; do
  40. if pgrep -f 'upgraderun.sh' > /dev/null ; then
  41. pkill -f "sh /tmp/Upgrade/upgraderun.sh"
  42. pkillexitstatus=$?
  43. if [ $pkillexitstatus -eq 0 ]; then
  44. echo "matched upgraderun.sh, killed."
  45. status=false
  46. break 1
  47. fi
  48. fi
  49. done
  50. fi
  51. if cat /params/config/.product_config | grep WYZEC1-JZ; then
  52. echo "v2 found"
  53. upgrade_path=$(find /tmp/Upgrade | grep upgradecp.sh)
  54. sed -i '/wc -c $KERNEL/,+14d' $upgrade_path
  55. #mv /tmp/Upgrade/upgraderun.sh /tmp/Upgrade/run_upg.sh
  56. #sh /tmp/Upgrade/run_upg.sh
  57. #/tmp/Upgrade/system_upgrade.sh
  58. else
  59. if [[ -e /tmp/Upgrade/app ]]; then
  60. echo "found app image, flashing"
  61. flashcp -v /tmp/Upgrade/app /dev/mtd3
  62. /opt/wz_mini/bin/busybox sync
  63. else
  64. echo "no kernel image present"
  65. fi
  66. if [[ -e /tmp/Upgrade/kernel ]]; then
  67. echo "found kernel image, flashing"
  68. flashcp -v /tmp/Upgrade/kernel /dev/mtd1
  69. /opt/wz_mini/bin/busybox sync
  70. else
  71. echo "no app image present"
  72. fi
  73. if [[ -e /tmp/Upgrade/rootfs ]]; then
  74. echo "found rootfs image, flashing"
  75. flashcp -v /tmp/Upgrade/rootfs /dev/mtd2
  76. /opt/wz_mini/bin/busybox sync
  77. else
  78. echo "no root image present"
  79. fi
  80. /opt/wz_mini/bin/busybox sync
  81. /opt/wz_mini/bin/busybox sync
  82. sleep 5
  83. echo reboot
  84. /opt/wz_mini/bin/busybox reboot
  85. fi
  86. fi;;
  87. *) echo "This script must be run from inotifyd";;
  88. esac