v-list-databases 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/bin/bash
  2. # info: listing databases
  3. # options: USER [FORMAT]
  4. # labels: panel
  5. #
  6. # example: v-list-databases user json
  7. #
  8. # The function for obtaining the list of all user's databases.
  9. #----------------------------------------------------------#
  10. # Variable&Function #
  11. #----------------------------------------------------------#
  12. # Argument definition
  13. user=$1
  14. format=${2-shell}
  15. # Includes
  16. # shellcheck source=/usr/local/hestia/func/main.sh
  17. source $HESTIA/func/main.sh
  18. # JSON list function
  19. json_list() {
  20. IFS=$'\n'
  21. i=1
  22. objects=$(grep "DB=" $USER_DATA/db.conf |wc -l)
  23. echo "{"
  24. while read str; do
  25. parse_object_kv_list "$str"
  26. echo -n ' "'$DB'": {
  27. "DATABASE": "'$DB'",
  28. "DBUSER": "'$DBUSER'",
  29. "HOST": "'$HOST'",
  30. "TYPE": "'$TYPE'",
  31. "CHARSET": "'$CHARSET'",
  32. "U_DISK": "'$U_DISK'",
  33. "SUSPENDED": "'$SUSPENDED'",
  34. "TIME": "'$TIME'",
  35. "DATE": "'$DATE'"
  36. }'
  37. if [ "$i" -lt "$objects" ]; then
  38. echo ','
  39. else
  40. echo
  41. fi
  42. ((i++))
  43. done < <(cat $USER_DATA/db.conf)
  44. echo '}'
  45. }
  46. # SHELL list function
  47. shell_list() {
  48. IFS=$'\n'
  49. echo "DATABASE USER HOST TYPE DISK SPND DATE"
  50. echo "-------- ---- ---- ---- ---- ---- ----"
  51. while read str; do
  52. parse_object_kv_list "$str"
  53. echo "$DB $DBUSER $HOST $TYPE $U_DISK $SUSPENDED $DATE"
  54. done < <(cat $USER_DATA/db.conf)
  55. }
  56. # PLAIN list function
  57. plain_list() {
  58. IFS=$'\n'
  59. while read str; do
  60. parse_object_kv_list "$str"
  61. echo -ne "$DB\t$DBUSER\t$HOST\t$TYPE\t$CHARSET\t$U_DISK\t"
  62. echo -e "$SUSPENDED\t$TIME\t$DATE"
  63. done < <(cat $USER_DATA/db.conf)
  64. }
  65. # CSV list function
  66. csv_list() {
  67. IFS=$'\n'
  68. echo "DATABASE,DBUSER,HOST,TYPE,CHARSET,U_DISK,SUSPENDED,TIME,DATE"
  69. while read str; do
  70. parse_object_kv_list "$str"
  71. echo "$DB,$DBUSER,$HOST,$TYPE,$CHARSET,$U_DISK,$SUSPENDED,$TIME,$DATE"
  72. done < <(cat $USER_DATA/db.conf)
  73. }
  74. #----------------------------------------------------------#
  75. # Verifications #
  76. #----------------------------------------------------------#
  77. check_args '1' "$#" 'USER [FORMAT]'
  78. is_format_valid 'user'
  79. is_object_valid 'user' 'USER' "$user"
  80. #----------------------------------------------------------#
  81. # Action #
  82. #----------------------------------------------------------#
  83. # Listing data
  84. case $format in
  85. json) json_list ;;
  86. plain) plain_list ;;
  87. csv) csv_list ;;
  88. shell) shell_list |column -t ;;
  89. esac
  90. #----------------------------------------------------------#
  91. # Hestia #
  92. #----------------------------------------------------------#
  93. exit