v-list-databases 2.6 KB

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