v-update-web-templates 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #!/bin/bash
  2. # info: update web templates
  3. # options: [RESTART]
  4. #
  5. # The function for obtaining updated pack of web templates.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. restart=$1
  11. # Includes
  12. source $HESTIA/func/main.sh
  13. source $HESTIA/conf/hestia.conf
  14. # Detect OS
  15. case $(head -n1 /etc/issue | cut -f 1 -d ' ') in
  16. Debian) type="debian" ;;
  17. Ubuntu) type="ubuntu" ;;
  18. *) type="NoSupport" ;;
  19. esac
  20. # Detect version
  21. if [ "$type" = "ubuntu" ] || [ "$type" = "debian" ]; then
  22. type="deb"
  23. else
  24. echo "Error: can't detect supported os"
  25. log_event "$E_NOTEXIST"
  26. exit $E_NOTEXIST
  27. fi
  28. if [ -z "$WEB_SYSTEM" ]; then
  29. echo "Error: Missing Web System"
  30. log_event "$E_ARGS"
  31. exit $E_ARGS
  32. fi
  33. HST_WEBTEMPLATES="$HESTIA/data/templates/web"
  34. #----------------------------------------------------------#
  35. # Action #
  36. #----------------------------------------------------------#
  37. # Update templates
  38. if [ -d "${HST_WEBTEMPLATES}" ]; then
  39. rm -rf "${HST_WEBTEMPLATES}/skel" 2>/dev/null
  40. rm -rf "${HST_WEBTEMPLATES}/suspend" 2>/dev/null
  41. rm -rf "${HST_WEBTEMPLATES}/unassigned" 2>/dev/null
  42. fi
  43. for webtpl_folder in $(ls $HESTIA/install/$type/templates/web/* -d 2>/dev/null | egrep -v '/(nginx)$' ); do
  44. cp -rf "${webtpl_folder}" "${HST_WEBTEMPLATES}/"
  45. done
  46. [ -d "${HST_WEBTEMPLATES}/nginx" ] || mkdir -p "${HST_WEBTEMPLATES}/nginx"
  47. # Update Multi-PHP templates
  48. php_versions=$(ls /etc/php/*/fpm -d 2>/dev/null | wc -l)
  49. if [ "$php_versions" -gt 1 ]; then
  50. for v in $(ls /etc/php/); do
  51. if [ ! -d "/etc/php/$v/fpm/pool.d/" ]; then
  52. continue
  53. fi
  54. v_tpl=$(echo "$v" | sed -e 's/[.]//')
  55. cp -f "$HESTIA/install/$type/multiphp/${WEB_SYSTEM}/PHP-${v_tpl}".* "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/"
  56. done
  57. chmod a+x "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/"*.sh 2> /dev/null
  58. # Create default TPL symlink when missing and point to the last php version found
  59. if [ ! -z $v_tpl ] && [ "$WEB_SYSTEM" = "nginx" ]; then
  60. [ -e "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.sh" ] || ln -s "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/PHP-${v_tpl}.sh" "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.sh"
  61. [ -e "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.tpl" ] || ln -s "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/PHP-${v_tpl}.tpl" "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.tpl"
  62. [ -e "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.stpl" ] || ln -s "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/PHP-${v_tpl}.stpl" "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.stpl"
  63. fi
  64. fi
  65. if [ "$PROXY_SYSTEM" = 'nginx' ] || [ "$php_versions" -le 1 ]; then
  66. cp -rf "${HESTIA}/install/${type}/templates/web/nginx" "${HST_WEBTEMPLATES}/"
  67. fi
  68. # Rebuilding web domains
  69. for user in $($BIN/v-list-sys-users plain); do
  70. $BIN/v-rebuild-web-domains $user no
  71. done
  72. #----------------------------------------------------------#
  73. # Hestia #
  74. #----------------------------------------------------------#
  75. # Restarting web server
  76. $BIN/v-restart-web $restart
  77. check_result $? "restart" >/dev/null 2>&1
  78. $BIN/v-restart-proxy $restart
  79. check_result $? "restart" >/dev/null 2>&1
  80. exit