diff --git a/bin/v_list_dns_domain b/bin/v_list_dns_domain new file mode 100755 index 00000000..01f6ef54 --- /dev/null +++ b/bin/v_list_dns_domain @@ -0,0 +1,114 @@ +#!/bin/bash +# info: list dns domain +# options: user domain [format] +# +# The function of obtaining the list of domain parameters. This call, just as +# all v_list_* calls, supports 3 formats - json, shell and plain. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument defenition +user=$1 +domain=$2 +format=${3-shell} + +# Importing variables +source $VESTA/conf/vars.conf +source $V_FUNC/shared.func +source $V_FUNC/domain.func + +# Json function +json_list_domain() { + i=1 + fileds_count=$(echo "$fields" | wc -w) + line=$(grep "DOMAIN='$domain'" $conf) + + # Print top bracket + echo '{' + + # Assing key=value + eval $line + + # Starting output loop + for field in $fields; do + # Parsing key=value + eval value=$field + + # Checking first field + if [ "$i" -eq 1 ]; then + echo -e "\t\"$value\": {" + else + if [ "$fileds_count" -eq "$i" ]; then + echo -e "\t\t\"${field//$/}\": \"$value\"," + else + echo -e "\t\t\"${field//$/}\": \"$value\"" + fi + fi + # Updating iterator + (( ++i)) + done + + # If there was any output + if [ -n "$value" ]; then + echo -e ' }' + fi + # Printing bottom json bracket + echo -e "}" +} + +# Shell function +shell_list_domain() { + line=$(grep "DOMAIN='$domain'" $conf) + + # Parsing key=value + eval $line + + # Print result line + for field in $fields; do + eval key="$field" + echo "${field//$/}: $key " + done +} + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +# Checking args +check_args '2' "$#" 'user domain [format]' + +# Checking user +is_user_valid + +# Checking domain exist +is_domain_valid 'dns' + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config +conf=$V_USERS/$user/dns.conf + +# Defining fileds to select +fields='$DOMAIN $IP $TPL $TTL $EXP $SOA $RECORDS $SUSPENDED $DATE' + +# Listing domains +case $format in + json) json_list_domain ;; + plain) nohead=1; shell_list_domain ;; + shell) shell_list_domain |column -t ;; + *) check_args '2' '0' 'user domain [format]' +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v_list_dns_domain_records b/bin/v_list_dns_domain_records index 7daae6e4..73ff1557 100755 --- a/bin/v_list_dns_domain_records +++ b/bin/v_list_dns_domain_records @@ -1,8 +1,8 @@ #!/bin/bash -# info: list dns domain +# info: list dns domain records # options: user domain [format] # -# The function for getting all DNS domain's parameters. +# The function for getting all DNS domain records. #----------------------------------------------------------# diff --git a/bin/v_list_dns_domains b/bin/v_list_dns_domains index 72240c2a..86715364 100755 --- a/bin/v_list_dns_domains +++ b/bin/v_list_dns_domains @@ -40,8 +40,7 @@ is_user_valid conf=$V_USERS/$user/dns.conf # Defining fileds to select -fields='$DOMAIN $IP $TPL $TTL $EXP $SOA $SUSPENDED $DATE' - +fields='$DOMAIN $IP $TPL $TTL $EXP $SOA $RECORDS $SUSPENDED $DATE' # Listing domains case $format in