@@ -17,6 +17,55 @@ format=${2-shell}
1717source $VESTA /conf/vesta.conf
1818source $VESTA /func/main.sh
1919
20+ # Json list function
21+ json_list_search () {
22+ echo ' {'
23+ fileds_count=$( echo $fields | wc -w )
24+ while read line; do
25+ eval $line
26+ if [ -n " $list_data " ]; then
27+ echo -e ' },'
28+ fi
29+ i=1
30+ IFS=' '
31+ for field in $fields ; do
32+ eval value=\" $field \"
33+ value=$( echo " $value " | sed -e ' s/"/\\"/g' -e " s/%quote%/'/g" )
34+ if [ $i -eq 1 ]; then
35+ (( ++ i))
36+ echo -e " \t\" $value \" : {"
37+ else
38+ if [ $i -lt $fileds_count ]; then
39+ (( ++ i))
40+ echo -e " \t\t\" ${field// $/ } \" : \" ${value// ,/ , } \" ,"
41+ else
42+ echo -e " \t\t\" ${field// $/ } \" : \" ${value// ,/ , } \" "
43+ list_data=1
44+ fi
45+ fi
46+ done
47+ done < $conf
48+ if [ -n " $list_data " ]; then
49+ echo -e ' }'
50+ fi
51+ echo -e ' }'
52+ }
53+
54+ # Shell list function
55+ shell_list_search () {
56+ if [ -z " $nohead " ] ; then
57+ echo " ${fields// $/ } "
58+ for a in $fields ; do
59+ echo -e " ------ \c"
60+ done
61+ echo
62+ fi
63+ while read line ; do
64+ eval $line
65+ eval echo " $fields " | sed -e " s/%quote%/'/g"
66+ done < $conf
67+ }
68+
2069# ----------------------------------------------------------#
2170# Verifications #
2271# ----------------------------------------------------------#
@@ -40,43 +89,59 @@ for user in $(ls $VESTA/data/users/); do
4089 search=$( grep " $object " \
4190 $VESTA /data/users/$user /web.conf \
4291 $VESTA /data/users/$user /dns.conf \
92+ $VESTA /data/users/$user /dns/* .conf \
4393 $VESTA /data/users/$user /mail.conf \
44- $VESTA /data/users/$user /db.conf)
94+ $VESTA /data/users/$user /mail/* .conf \
95+ $VESTA /data/users/$user /db.conf \
96+ $VESTA /data/users/$user /cron.conf 2> /dev/null)
4597
4698 for row in $search ; do
4799 # Initialise variable
48100 key=' '
49101 result=' '
50102 dom_alias=' '
51103 suspended=' '
52- object_time=' '
104+ object_link=' '
105+ object_parent=' '
106+ object_time=' '
53107 object_date=' '
54108
55109 # Parsing result
56- type=$( echo $row | cut -f 1 -d : | cut -f 8 -d / | cut -f 1 -d \. )
110+ type=$( echo $row | cut -f 1 -d : | cut -f 8 -d /)
57111 data=$( echo $row | cut -f 2,3,4,5 -d :)
58112 eval " $data "
59113
60114 # Check WEB domain
61- dom_alias=' '
62- if [ " $type " = ' web' ]; then
115+ if [ " $type " = ' web.conf' ]; then
63116 if [ -n " $( echo $DOMAIN | grep $object ) " ]; then
64117 # Check domain alias
65- check_dom_alias =" $( echo $ALIAS | tr ' ,' ' \n' | grep $object ) "
66- if [ ! -z " $check_dom_alias " ]; then
67- dom_alias =$( echo $check_dom_alias | tr ' ' ' ,' )
118+ check_alias =" $( echo $ALIAS | tr ' ,' ' \n' | grep $object ) "
119+ if [ ! -z " $check_alias " ]; then
120+ object_alias =$( echo $check_alias | tr ' ' ' ,' )
68121 fi
69122 key=" DOMAIN"
70123 result=" $DOMAIN "
71124 suspended=$SUSPENDED
72125 object_time=$TIME
73126 object_date=$DATE
74127 (( i ++ ))
128+ else
129+ check_alias=" $( echo $ALIAS | tr ' ,' ' \n' | grep $object ) "
130+ if [ ! -z " $check_alias " ]; then
131+ key=" DOMAIN"
132+ result=" $DOMAIN "
133+ object_parent=" $DOMAIN "
134+ object_alias=$( echo $check_alias | tr ' ' ' ,' )
135+ suspended=$SUSPENDED
136+ object_time=$TIME
137+ object_date=$DATE
138+ (( i ++ ))
139+ fi
75140 fi
76141 fi
77142
78143 # DNS
79- if [ " $type " = ' dns' ]; then
144+ if [ " $type " = ' dns.conf ' ]; then
80145 if [ -n " $( echo $DOMAIN | grep $object ) " ]; then
81146 key=" DOMAIN"
82147 result=" $DOMAIN "
@@ -87,8 +152,22 @@ for user in $(ls $VESTA/data/users/); do
87152 fi
88153 fi
89154
155+ # DNS Records
156+ if [ " $type " = ' dns' ]; then
157+ if [ -n " $( echo $RECORD | grep $object ) " ]; then
158+ key=" RECORD"
159+ result=" $RECORD .$DOMAIN "
160+ suspended=$SUSPENDED
161+ object_link=$ID
162+ object_parent=$DOMAIN
163+ object_time=$TIME
164+ object_date=$DATE
165+ (( i ++ ))
166+ fi
167+ fi
168+
90169 # MAIL
91- if [ " $type " = ' mail' ]; then
170+ if [ " $type " = ' mail.conf ' ]; then
92171 if [ -n " $( echo $DOMAIN | grep $object ) " ]; then
93172 key=" DOMAIN"
94173 result=" $DOMAIN "
@@ -99,8 +178,24 @@ for user in $(ls $VESTA/data/users/); do
99178 fi
100179 fi
101180
181+ # Mail Accounts
182+ if [ " $type " = ' mail' ]; then
183+ type=' mail'
184+ if [ -n " $( echo $ACCOUNT | grep $object ) " ]; then
185+ key=" ACCOUNT"
186+ dom=" $( echo $row | cut -f 1 -d :| cut -f 9 -d /| sed -e " s/.conf//" ) "
187+ result=" $ACCOUNT @$dom "
188+ suspended=$SUSPENDED
189+ object_link=$ACCOUNT
190+ object_parent=$dom
191+ object_time=$TIME
192+ object_date=$DATE
193+ (( i ++ ))
194+ fi
195+ fi
196+
102197 # DB
103- if [ " $type " = ' db' ]; then
198+ if [ " $type " = ' db.conf ' ]; then
104199 if [ -n " $( echo $DB | grep $object ) " ]; then
105200 key=" DATABASE"
106201 result=" $DB "
@@ -111,10 +206,26 @@ for user in $(ls $VESTA/data/users/); do
111206 fi
112207 fi
113208
209+ # Cron Jobs
210+ if [ " $type " = ' cron.conf' ]; then
211+ if [ -n " $( echo $CMD | grep $object ) " ]; then
212+ key=" JOB"
213+ result=" $CMD "
214+ suspended=$SUSPENDED
215+ object_link=$JOB
216+ object_parent=$JOB
217+ object_time=$TIME
218+ object_date=$DATE
219+ (( i ++ ))
220+ fi
221+ fi
222+
114223 if [ ! -z " $result " ]; then
224+ type=$( echo $type | cut -f1 -d \. )
115225 str=" ID='$i ' USER='$user ' TYPE='$type ' KEY='$key '"
116226 str=" $str RESULT='$result ' ALIAS='$dom_alias '"
117- str=" $str SUSPENDED='$suspended ' TIME='$object_time '"
227+ str=" $str LINK='$object_link ' PARENT='$object_parent '"
228+ str=" $str SUSPENDED='$suspended ' TIME='$object_time '"
118229 str=" $str DATE='$object_date '"
119230 echo $str >> $conf
120231 fi
@@ -123,14 +234,16 @@ done
123234IFS=$OLD_IFS
124235
125236# Defining fileds to select
126- fields=' $ID $USER $TYPE $KEY $RESULT $ALIAS $SUSPENDED $TIME $DATE'
237+ fields=' $ID $USER $TYPE $KEY $RESULT $ALIAS $LINK $PARENT $SUSPENDED $TIME'
238+ fields=" $fields \$ DATE"
127239
128240# Listing domains
129- case $format in
130- json) json_list ;;
131- plain) nohead=1; shell_list ;;
132- shell) fields=' $USER $TYPE $KEY $RESULT $ALIAS' ; shell_list | column -t;;
133- * ) check_args ' 2' ' 0' ' object [format]'
241+ case $format in
242+ json) json_list_search ;;
243+ plain) nohead=1; shell_list_search ;;
244+ shell) fields=' $USER~$TYPE~$KEY~$RESULT~$ALIAS' ;
245+ shell_list | column -t -s ' ~' ;;
246+ * ) check_args ' 1' ' 0' ' object [format]'
134247esac
135248
136249rm $conf
0 commit comments