v-list-sys-php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #!/bin/bash
  2. # info: listing availble PHP versions installed
  3. # options: [FORMAT]
  4. # labels: hestia panel
  5. #
  6. # example: v-list-sys-php
  7. #
  8. # List /etc/php/* version check if folder fpm is available
  9. #----------------------------------------------------------#
  10. # Variable&Function #
  11. #----------------------------------------------------------#
  12. # Argument definition
  13. format=${1-shell}
  14. # Includes
  15. # shellcheck source=/etc/hestiacp/hestia.conf
  16. source /etc/hestiacp/hestia.conf
  17. # shellcheck source=/usr/local/hestia/func/main.sh
  18. source $HESTIA/func/main.sh
  19. # load config file
  20. source_conf "$HESTIA/conf/hestia.conf"
  21. # JSON list function
  22. json_list() {
  23. i=1
  24. objects=$(echo "${versions[@]}" |wc -w)
  25. echo '['
  26. for version in "${versions[@]}"; do
  27. if [ "$i" -lt "$objects" ]; then
  28. echo -e "\t\"$version\","
  29. else
  30. echo -e "\t\"$version\""
  31. fi
  32. (( ++i))
  33. done
  34. echo "]"
  35. }
  36. # SHELL list function
  37. shell_list() {
  38. echo "VERSION"
  39. echo "--------"
  40. for version in "${versions[@]}"; do
  41. echo "$version"
  42. done
  43. }
  44. # PLAIN list function
  45. plain_list() {
  46. for version in "${versions[@]}"; do
  47. echo "$version"
  48. done
  49. }
  50. # CSV list function
  51. csv_list() {
  52. echo "VERSION"
  53. for version in "${versions[@]}"; do
  54. echo "$version"
  55. done
  56. }
  57. #----------------------------------------------------------#
  58. # Action #
  59. #----------------------------------------------------------#
  60. declare -a versions;
  61. # List through /etc/php
  62. for version in /etc/php/*/fpm; do
  63. ver=$(echo "$version" | awk -F"/" '{ print $4 }');
  64. versions+=("$ver")
  65. done
  66. # Listing data
  67. case $format in
  68. json) json_list ;;
  69. plain) plain_list ;;
  70. csv) csv_list ;;
  71. shell) shell_list ;;
  72. esac
  73. #----------------------------------------------------------#
  74. # Hestia #
  75. #----------------------------------------------------------#
  76. exit