v-list-user-package 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #!/bin/bash
  2. # info: list user package
  3. # options: package [format]
  4. #
  5. # The function for getting the list of system ip parameters.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument defenition
  10. package=$1
  11. PACKAGE=$package
  12. format=${2-shell}
  13. # Includes
  14. source $VESTA/func/main.sh
  15. # Json function
  16. json_list_package() {
  17. i=1
  18. fileds_count=$(echo "$fields" | wc -w)
  19. pkg_data=$(cat $VESTA/data/packages/$PACKAGE.pkg)
  20. echo '{'
  21. eval $pkg_data
  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 [ $fileds_count -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 ' }'
  37. fi
  38. echo -e '}'
  39. }
  40. # Shell function
  41. shell_list_package() {
  42. line=$(cat $VESTA/data/packages/$PACKAGE.pkg)
  43. eval $line
  44. for field in $fields; do
  45. eval key="$field"
  46. if [ -z "$key" ]; then
  47. key='NULL'
  48. fi
  49. echo "${field//$/}: $key "
  50. done
  51. }
  52. #----------------------------------------------------------#
  53. # Verifications #
  54. #----------------------------------------------------------#
  55. # Checking args
  56. check_args '1' "$#" 'package [format]'
  57. validate_format 'package'
  58. is_package_valid
  59. #----------------------------------------------------------#
  60. # Action #
  61. #----------------------------------------------------------#
  62. # Defining fileds to select
  63. fields='$PACKAGE $TEMPLATE $WEB_DOMAINS $WEB_ALIASES $DNS_DOMAINS $DNS_RECORDS
  64. $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES $CRON_JOBS $DISK_QUOTA $BANDWIDTH
  65. $NS $SHELL $BACKUPS $TIME $DATE'
  66. # Listing ip
  67. case $format in
  68. json) json_list_package ;;
  69. plain) shell_list_package ;;
  70. shell) shell_list_package | column -t ;;
  71. *) check_args '1' '0' 'ip [format]'
  72. esac
  73. #----------------------------------------------------------#
  74. # Vesta #
  75. #----------------------------------------------------------#
  76. exit