v-list-sys-php 1.9 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. source $HESTIA/func/main.sh
  16. source $HESTIA/conf/hestia.conf
  17. # JSON list function
  18. json_list() {
  19. i=1
  20. objects=$(echo "$versions" |wc -w)
  21. echo '['
  22. for version in $versions; do
  23. if [ "$i" -lt "$objects" ]; then
  24. echo -e "\t\"$version\","
  25. else
  26. echo -e "\t\"$version\""
  27. fi
  28. (( ++i))
  29. done
  30. echo "]"
  31. }
  32. # SHELL list function
  33. shell_list() {
  34. echo "VERSION"
  35. echo "--------"
  36. for version in $versions; do
  37. echo "$version"
  38. done
  39. }
  40. # PLAIN list function
  41. plain_list() {
  42. for version in $versions; do
  43. echo "$version"
  44. done
  45. }
  46. # CSV list function
  47. csv_list() {
  48. echo "VERSION"
  49. for version in $versions; do
  50. echo "$version"
  51. done
  52. }
  53. #----------------------------------------------------------#
  54. # Action #
  55. #----------------------------------------------------------#
  56. # List through /etc/php
  57. versions_list=$(ls -d /etc/php/*)
  58. versions=()
  59. for version in $versions_list; do
  60. if [ -d "$version/fpm" ]
  61. then
  62. version=$(echo $version | cut -d'/' -f4);
  63. versions+=" $version"
  64. fi
  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