v-list-user-backups 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #!/bin/bash
  2. # info: list user backups
  3. # options: USER [FORMAT]
  4. #
  5. # The function for obtaining the list of available user backups.
  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 BACKUP $USER_DATA/backup.conf |wc -l)
  19. echo "{"
  20. while read str; do
  21. eval $str
  22. echo -n ' "'$BACKUP'": {
  23. "TYPE": "'$TYPE'",
  24. "SIZE": "'$SIZE'",
  25. "WEB": "'$WEB'",
  26. "DNS": "'$DNS'",
  27. "MAIL": "'$MAIL'",
  28. "DB": "'$DB'",
  29. "CRON": "'$CRON'",
  30. "UDIR": "'$UDIR'",
  31. "RUNTIME": "'$RUNTIME'",
  32. "TIME": "'$TIME'",
  33. "DATE": "'$DATE'"
  34. }'
  35. if [ "$i" -lt "$objects" ]; then
  36. echo ','
  37. else
  38. echo
  39. fi
  40. ((i++))
  41. done < <(cat $USER_DATA/backup.conf)
  42. echo '}'
  43. }
  44. # SHELL list function
  45. shell_list() {
  46. IFS=$'\n'
  47. echo "BACKUP TYPE SIZE TIME DATE"
  48. echo "------ ---- --- ---- ----"
  49. while read str; do
  50. eval $str
  51. echo "$BACKUP $TYPE $SIZE $RUNTIME $DATE"
  52. done < <(cat $USER_DATA/backup.conf)
  53. }
  54. # PLAIN list function
  55. plain_list() {
  56. IFS=$'\n'
  57. while read str; do
  58. eval $str
  59. echo -ne "$BACKUP\t$TYPE\t$SIZE\t$WEB\t$DNS\t$MAIL\t$CRON\t$UDIR\t"
  60. echo -e "$RUNTIME\t$TIME\t$DATE"
  61. done < <(cat $USER_DATA/backup.conf)
  62. }
  63. # CSV list function
  64. csv_list() {
  65. IFS=$'\n'
  66. echo "BACKUP,TYPE,SIZE,WEB,DNS,MAIL,CRON,UDIR,RUNTIME,TIME,DATE"
  67. while read str; do
  68. eval $str
  69. echo -n "$BACKUP,$TYPE,$SIZE,\"$WEB\",\"$DNS\",\"$MAIL\",\"$CRON\","
  70. echo "\"$UDIR\",$RUNTIME,$TIME,$DATE"
  71. done < <(cat $USER_DATA/backup.conf)
  72. }
  73. #----------------------------------------------------------#
  74. # Verifications #
  75. #----------------------------------------------------------#
  76. check_args '1' "$#" 'USER [FORMAT]'
  77. is_format_valid 'user'
  78. is_object_valid 'user' 'USER' "$user"
  79. #----------------------------------------------------------#
  80. # Action #
  81. #----------------------------------------------------------#
  82. # Checking config
  83. conf=$USER_DATA/backup.conf
  84. if [ ! -e "$conf" ]; then
  85. touch $conf
  86. fi
  87. # Listing data
  88. case $format in
  89. json) json_list ;;
  90. plain) plain_list ;;
  91. csv) csv_list ;;
  92. shell) shell_list |column -t ;;
  93. esac
  94. #----------------------------------------------------------#
  95. # Vesta #
  96. #----------------------------------------------------------#
  97. exit