vesta/bin/v-list-user-backup-exclusions
2015-10-12 17:43:15 +03:00

103 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# info: list backup exclusions
# options: USER [FORMAT]
#
# The function for obtaining the backup exclusion list
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
format=${2-shell}
USER=''
# Includes
source $VESTA/func/main.sh
# Json function
json_list_backup_xld() {
set -f
echo '{'
fields_count=$(echo "$fields" | wc -w)
i=1
source $USER_DATA/backup-excludes.conf
for field in $fields; do
eval value=$field
j=1
echo -e "\t\"${field//$/}\": {"
for exlcude in ${value//,/ }; do
exlcude_obj=$(echo $exlcude |cut -f 1 -d:)
exclude_param=$(echo $exlcude |sed -e "s/$exlcude_obj://")
if [ "$exlcude_obj" = "$exclude_param" ]; then
exclude_param=''
fi
if [ $j -lt "$(echo ${value//,/ } |wc -w)" ]; then
echo -e "\t\t\"$exlcude_obj\": \"$exclude_param\","
else
echo -e "\t\t\"$exlcude_obj\": \"$exclude_param\""
fi
(( ++j))
done
if [ $i -lt $fields_count ]; then
echo -e "\t},"
else
echo -e "\t}"
fi
(( ++i))
done
echo '}'
}
# Shell function
shell_list_backup_xld() {
source $USER_DATA/backup-excludes.conf
for field in $fields; do
eval value=$field
echo -e "${field//$/}: $value"
done
}
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'USER [FORMAT]'
validate_format 'user'
is_object_valid 'user' 'USER' "$user"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Flush variables
WEB=''
DNS=''
MAIL=''
DB=''
CRON=''
USER=''
# Defining fileds to select
touch $USER_DATA/backup-excludes.conf
fields="\$WEB \$DNS \$MAIL \$DB \$CRON \$USER"
# Listing backup exclusions
case $format in
json) json_list_backup_xld ;;
plain) nohead=1; shell_list_backup_xld ;;
shell) shell_list_backup_xld;;
*) check_args '1' '0' '[FORMAT]'
esac
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
exit