Advertisement
MartineauPASTEBIN

Refresh /WWW

Jun 28th, 2017
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.07 KB | None | 0 0
  1. #!/bin/sh
  2. VER="v01.05"
  3. #======================================================================================================= © 2016-2017 Martineau, v01.05
  4. #  
  5. # Refresh custom /www i.e. adding custom TAB (such as Kvic's NTP Daemon) to say Tools Menu in the GUI
  6. #        
  7. #   Each time a NEW firmware is installed, then this script should be run (in case there are any undisclosed GUI tweaks by ASUS or RMerlin! ;-)
  8. #
  9. #   NOTE: In say '/jffs/scripts/post-mount' you could automate the process.
  10. #
  11.  
  12. # e.g. /jffs/scripts/post-mount
  13. #
  14. # Check if the firmware has changed, if so, we need to refresh '/www' just in case there are any subtle (undisclosed) tweaks by Asus or RMerlin!
  15. # FIRMWARE=$(nvram get buildno | awk 'BEGIN { FS = "." } {print $1$2}')
  16. # if [ -f "/tmp/mnt/$MYROUTER/Firmware_ver.txt" ];then
  17. #    FIRMWARE_PREV=$(cat /tmp/mnt/$MYROUTER/Firmware_ver.txt)
  18. # else
  19. #    FIRMWARE_PREV="N/A"
  20. # fi
  21. #
  22. # if [ "$FIRMWARE" !=  "$FIRMWARE_PREV" ];then
  23. #   logger -st "($(basename $0))" $$ "Firmware v'"$FIRMWARE"' changed from previous v'"$FIRMWARE_PREV"'; requesting 'RefreshWWW.sh'....."
  24. #   /jffs/scripts/RefreshWWW.sh
  25. #   echo $FIRMWARE >/tmp/mnt/$MYROUTER/Firmware_ver.txt                     # Update/create the Firmware tracking file on USB
  26. # else
  27. #   logger -st "($(basename $0))" $$ "Mounting '/www'
  28. #   'NTP Daemon' on Tools TAB"
  29. #   mount -a                    # NTP Daemon - mounts /opt/var/www to /www (see cp /jffs/configs/fstab /etc)
  30. #   service restart_httpd       # NTP Daemon new tab added to tools page ? etc.
  31. # fi
  32.    
  33. # Print between line beginning with'#==' to first blank line inclusive
  34. ShowHelp() {
  35.     awk '/^#==/{f=1} f{print; if (!NF) exit}' $0
  36. }
  37. ANSIColours () {
  38.  
  39.     cRESET="\e[0m";cBLA="\e[30m";cRED="\e[31m";cGRE="\e[32m";cYEL="\e[33m";cBLU="\e[34m";cMAG="\e[35m";cCYA="\e[36m";cGRA="\e[37m"
  40.     cBGRA="\e[90m";cBRED="\e[91m";cBGRE="\e[92m";cBYEL="\e[93m";cBBLU="\e[94m";cBMAG="\e[95m";cBCYA="\e[96m";cBWHT="\e[97m"
  41.     aBOLD="\e[1m";aDIM="\e[2m";aUNDER="\e[4m";aBLINK="\e[5m";aREVERSE="\e[7m"
  42.     cRED_="\e[41m";cGRE_="\e[42m"
  43.    
  44. }
  45.  
  46. #  For >380.68 customisiation has now changed:
  47. #       /www/require/modules/menuTree.js
  48.  
  49.  
  50. #==============================================Main==================================================================================
  51.  
  52. ANSIColours
  53.  
  54. if [ "$1" = "-h" ] || [ "$1" = "help" ]; then
  55.     echo -en $cBWHT
  56.    ShowHelp                                 # Show help
  57.    echo -e $cRESET
  58.    exit 0
  59. fi
  60.  
  61. logger -st "($(basename $0))" $$ $VER "© 2016-2017 Martineau, Refresh '/www' requested....."
  62.  
  63. # Stop the active HTTPD
  64. echo -e $cBCYA"\n\tStopping HTTPD....."$cBGRE
  65. service stop_httpd
  66. echo -e $cBRED
  67. umount /www
  68.  
  69. # Ensure the old copy of /www is deleted
  70. echo -e $cBCYA"\tErasing '/opt/var/www*   .....\n"$cBRED
  71. rm -rf /opt/var/www
  72. #rmdir /opt/var/www
  73. if [ -d /opt/var/www ];then
  74.     echo -e "\a\n"$cRED_"\t***Cannot delete directory '/opt/var/www'"$cRESET
  75.     echo -e $cBCYA"\n\tRestarting HTTPD"$cBGRE
  76.     service restart_httpd
  77.     echo -e $cRESET
  78.     exit 97
  79. fi
  80.  
  81. # Clone HTTP to /www
  82. echo -e $cBCYA"\tCloning '/www' to '/opt/var/www' may take upto 30 secs.....\n"$cBMAG
  83. sleep 10
  84.  
  85. start=`date +%s`
  86. tar cf - /www | tar -C /opt/var -xvf - 2> /dev/null
  87. end=`date +%s`
  88. difftime=$((end-start))
  89. echo -e $cBYEL"\n\tCloning '/www' to '/opt/var/www' took $(($difftime % 60)) seconds\n"
  90.  
  91. # Reload /www and use it!
  92. echo -e $cBCYA"\tMounting /www"$cBRED
  93. mount -a
  94.  
  95. if [ -z "$(df | grep "/www")" ];then
  96.     df
  97.     logger -t "($(basename $0))" $$ "Warning /www not mounted?"
  98.     echo -e $cRED_"\a\n\t**Warning /www not mounted?"$cRESET
  99. fi
  100.  
  101.  
  102.  
  103. if [ -f /opt/var/spool/ntp/Tools_NtpdStats.asp ];then
  104.  
  105.     # Customise the Tools TAB
  106.     echo -e $cBCYA"\n\tCustomising Kvic NTPD Tools TAB.....\n"$cBRED
  107.  
  108.     cp /opt/var/spool/ntp/Tools_NtpdStats.asp /www
  109.  
  110.     # v380.68 redesigned the menu structure
  111.     FIRMWARE=`echo $(nvram get buildno) | awk 'BEGIN { FS = "." } {print $1$2}'`
  112.     if [ $FIRMWARE -lt 38068 ];then
  113.         FN="/www/state.js"
  114.         sed -i 's/Other Settings");/Other Settings", "NTP Daemon");/'              $FN
  115.         sed -i 's/therSettings.asp");/therSettings.asp", "Tools_NtpdStats.asp");/' $FN
  116.        
  117.     else   
  118.         FN="/www/require/modules/menuTree.js"
  119.         # {
  120.         # menuName: "Tools",
  121.         # index: "menu_Tools",
  122.         # tab: [
  123.         # {url: "Tools_Sysinfo.asp", tabName: "Sysinfo"},
  124.         # {url: "Tools_OtherSettings.asp", tabName: "Other Settings"},
  125.         # {url: "Tools_NtpdStats.asp", tabName: "NTP Daemon"},                      <<== insert this line
  126.         # {url: "NULL", tabName: "__INHERIT__"}
  127.         # ]
  128.         # },
  129.         sed -i '/"Tools_OtherSettings.asp", tabName: "Other Settings"/a {url: "Tools_NtpdStats.asp", tabName: "NTP Daemon"},' $FN
  130.     fi
  131.         logger -t "($(basename $0))" $$ "NTP Daemon TAB added '"$FN"'....."
  132.         echo -e $cBMAG"\t\tNTP Daemon TAB added '"$FN"'.....\n"$cBRED
  133. else
  134.     logger -t "($(basename $0))" $$ "Refresh skipped - Kvic mod '/opt/var/spool/ntp/Tools_NtpdStats.asp' not found?"
  135.     echo -e $cRED_"\n\tRefresh skipped - Kvic mod '/opt/var/spool/ntp/Tools_NtpdStats.asp' not found?"$cRESET
  136.     umount /www
  137. fi
  138.  
  139. echo -e $cBCYA"\n\tRestarting HTTPD"$cBGRE
  140. service restart_httpd
  141.  
  142. echo -e $cRESET
  143.  
  144. logger -st "($(basename $0))" $$ "Refresh '/www' request complete."
  145.  
  146. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement