v_list_database 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/bin/bash
  2. # info: list database
  3. # options: user database [format]
  4. #
  5. # The function for obtaining of all database's parameters.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument defenition
  10. user=$1
  11. database=$2
  12. format=${3-shell}
  13. # Includes
  14. source $VESTA/func/shared.sh
  15. # Json function
  16. json_list_db() {
  17. i=1
  18. last_word=$(echo "$fields" | wc -w)
  19. line=$(grep "DB='$database'" $conf)
  20. echo '{'
  21. eval $line
  22. for field in $fields; do
  23. eval value=$field
  24. if [ "$i" -eq 1 ]; then
  25. echo -e "\t\"$value\": {"
  26. else
  27. if [ "$last_word" -eq "$i" ]; then
  28. echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
  29. else
  30. echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
  31. fi
  32. fi
  33. (( ++i))
  34. done
  35. if [ -n "$value" ]; then
  36. echo -e "\t}"
  37. fi
  38. echo -e '}'
  39. }
  40. # Shell list for single database
  41. shell_list_db() {
  42. line=$(grep "DB='$database'" $conf)
  43. eval $line
  44. for field in $fields; do
  45. eval key="$field"
  46. echo "${field//$/}: $key "
  47. done
  48. }
  49. #----------------------------------------------------------#
  50. # Verifications #
  51. #----------------------------------------------------------#
  52. check_args '2' "$#" 'user database [format]'
  53. validate_format 'user' 'database'
  54. is_object_valid 'user' 'USER' "$user"
  55. is_object_valid 'db' 'DB' "$database"
  56. #----------------------------------------------------------#
  57. # Action #
  58. #----------------------------------------------------------#
  59. # Defining fileds to select
  60. conf=$USER_DATA/db.conf
  61. fields='$DB $DBUSER $HOST $TYPE $CHARSET $U_DISK $SUSPENDED $TIME $DATE'
  62. # Listing database
  63. case $format in
  64. json) json_list_db ;;
  65. plain) shell_list_db ;;
  66. shell) shell_list_db | column -t ;;
  67. *) check_args '2' '0' 'user database [format]'
  68. esac
  69. #----------------------------------------------------------#
  70. # Vesta #
  71. #----------------------------------------------------------#
  72. exit