v-list-database-host 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #!/bin/bash
  2. # info: list database host
  3. # options: TYPE HOST [FORMAT]
  4. # labels: panel
  5. #
  6. # example: v-list-database-host mysql localhost
  7. #
  8. # The function for obtaining database host parameters.
  9. #----------------------------------------------------------#
  10. # Variable&Function #
  11. #----------------------------------------------------------#
  12. # Argument definition
  13. type=$1
  14. host=$2
  15. format=${3-shell}
  16. # Includes
  17. source $HESTIA/func/main.sh
  18. source $HESTIA/func/db.sh
  19. # JSON list function
  20. json_list() {
  21. echo '{'
  22. echo ' "'$HOST'": {
  23. "HOST": "'$HOST'",
  24. "PORT": "'$PORT'",
  25. "TYPE": "'$type'",
  26. "CHARSETS": "'$CHARSETS'",
  27. "MAX_DB": "'$MAX_DB'",
  28. "U_SYS_USERS": "'$U_SYS_USERS'",
  29. "U_DB_BASES": "'$U_DB_BASES'",
  30. "TPL": "'$TPL'",
  31. "SUSPENDED": "'$SUSPENDED'",
  32. "TIME": "'$TIME'",
  33. "DATE": "'$DATE'"
  34. }'
  35. echo '}'
  36. }
  37. # SHELL list function
  38. shell_list() {
  39. echo "HOST: $HOST"
  40. echo "PORT: $PORT"
  41. echo "TYPE: $type"
  42. echo "CHARSETS: $CHARSETS"
  43. echo "MAX_DB: $MAX_DB"
  44. echo "U_DB_BASES: $U_DB_BASES"
  45. echo "U_SYS_USERS: $U_SYS_USERS"
  46. echo "TPL: $TPL"
  47. echo "SUSPENDED: $SUSPENDED"
  48. echo "TIME: $TIME"
  49. echo "DATE: $DATE"
  50. }
  51. # PLAIN list function
  52. plain_list() {
  53. echo -ne "$HOST\t$PORT\t$type\t$CHARSETS\t$MAX_DB\t$U_SYS_USERS\t"
  54. echo -e "$U_DB_BASES\t$TPL\t$SUSPENDED\t$TIME\t$DATE"
  55. }
  56. # CSV list function
  57. csv_list() {
  58. echo -n "HOST,PORT,TYPE,CHARSETS,MAX_DB,U_SYS_USERS,"
  59. echo "U_DB_BASES,TPL,SUSPENDED,TIME,DATE'"
  60. echo -n "$HOST,$PORT,$type,\"$CHARSETS\",$MAX_DB,\"$U_SYS_USERS\","
  61. echo "$U_DB_BASES,$TPL,$SUSPENDED,$TIME,$DATE"
  62. }
  63. # Type format validator
  64. is_type_format_valid() {
  65. exclude="[!|#|$|^|&|(|)|+|=|{|}|:|@|<|>|?|/|\|\"|'|;|%|\`| ]|\."
  66. if [[ "$1" =~ $exclude ]]; then
  67. check_result $E_INVALID "invalid type extention format :: $1"
  68. fi
  69. }
  70. #----------------------------------------------------------#
  71. # Verifications #
  72. #----------------------------------------------------------#
  73. check_args '2' "$#" 'TYPE HOST [FORMAT]'
  74. is_format_valid 'host'
  75. is_type_format_valid "$type"
  76. is_object_valid "../../conf/$type" 'HOST' "$host"
  77. # Set default port values if they don't exist in host configuration file
  78. database_set_default_ports
  79. #----------------------------------------------------------#
  80. # Action #
  81. #----------------------------------------------------------#
  82. # Parsing hosts
  83. parse_object_kv_list $(grep "HOST='$host'" $HESTIA/conf/$type.conf)
  84. # Listing data
  85. case $format in
  86. json) json_list ;;
  87. plain) plain_list ;;
  88. csv) csv_list ;;
  89. shell) shell_list |column -t ;;
  90. esac
  91. #----------------------------------------------------------#
  92. # Hestia #
  93. #----------------------------------------------------------#
  94. exit