Skip to content

Commit 6e0ef66

Browse files
committed
listing scripts refactoring + new format
1 parent b7e9f4b commit 6e0ef66

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+3697
-1993
lines changed

bin/v-list-backup-host

Lines changed: 53 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22
# info: list backup host
3-
# options: TYPE [FORMAT]
3+
# options: TYPE HOST [FORMAT]
44
#
55
# The function for obtaining the list of backup host parameters.
66

@@ -10,46 +10,55 @@
1010
#----------------------------------------------------------#
1111

1212
# Argument definition
13-
TYPE=$1
13+
type=$1
1414
format=${2-shell}
1515

1616
# Includes
1717
source $VESTA/func/main.sh
1818

19-
# Json function
20-
json_list_ftp_host() {
21-
i=1
22-
fileds_count=$(echo "$fields" | wc -w)
23-
ip_data=$(cat $VESTA/conf/$TYPE.backup.conf)
19+
# JSON list function
20+
json_list() {
2421
echo '{'
25-
echo -e "\t\"$TYPE\": {"
26-
eval $ip_data
27-
for field in $fields; do
28-
eval value=$field
29-
if [ $fileds_count -eq $i ]; then
30-
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
31-
else
32-
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
33-
fi
34-
(( ++i))
35-
done
36-
if [ -n "$value" ]; then
37-
echo -e ' }'
38-
fi
39-
echo -e '}'
22+
echo ' "'$type'": {
23+
"HOST": "'$HOST'",
24+
"USERNAME": "'$USERNAME'",
25+
"PORT": "'$PORT'",
26+
"TYPE": "'$type'",
27+
"BPATH": "'$BPATH'",
28+
"TIME": "'$TIME'",
29+
"DATE": "'$DATE'"
30+
}'
31+
echo '}'
32+
}
33+
34+
# SHELL list function
35+
shell_list() {
36+
echo "HOST: $HOST"
37+
echo "USERNAME: $USERNAME"
38+
echo "PORT: $PORT"
39+
echo "TYPE: $type"
40+
echo "PATH: $BPATH"
41+
echo "TIME: $TIME"
42+
echo "DATE: $DATE"
43+
}
44+
45+
# PLAIN list function
46+
plain_list() {
47+
echo -e "$HOST\t$USERNAME\t$PORT\t$type\t$BPATH\t$TIME\t$DATE"
48+
}
49+
50+
# CSV list function
51+
csv_list() {
52+
echo "HOST,USERNAME,PORT,TYPE,PATH,TIME,DATE"
53+
echo "$HOST,$USERNAME,$PORT,$type,$BPATH,$TIME,$DATE"
4054
}
4155

42-
# Shell function
43-
shell_list_ftp_host() {
44-
line=$(cat $VESTA/conf/$TYPE.backup.conf)
45-
eval $line
46-
for field in $fields; do
47-
eval key="$field"
48-
if [ -z "$key" ]; then
49-
key='NULL'
50-
fi
51-
echo "${field//$/}: $key "
52-
done
56+
# Type format validator
57+
is_type_format_valid() {
58+
exclude="[!|#|$|^|&|(|)|+|=|{|}|:|@|<|>|?|/|\|\"|'|;|%|\`| ]|\."
59+
if [[ "$1" =~ $exclude ]]; then
60+
check_result $E_INVALID "invalid type extention format :: $1"
61+
fi
5362
}
5463

5564

@@ -58,25 +67,27 @@ shell_list_ftp_host() {
5867
#----------------------------------------------------------#
5968

6069
check_args '1' "$#" 'TYPE [FORMAT]'
70+
is_type_format_valid "$type"
6171

6272

6373
#----------------------------------------------------------#
6474
# Action #
6575
#----------------------------------------------------------#
6676

67-
if [ ! -e "$VESTA/conf/$TYPE.backup.conf" ]; then
77+
# Checking backup config
78+
if [ ! -e "$VESTA/conf/$type.backup.conf" ]; then
6879
exit
6980
fi
7081

71-
# Defining fileds to select
72-
fields='$HOST $USERNAME $PORT $TYPE $BPATH $TIME $DATE'
82+
# Parsing backup config
83+
source "$VESTA/conf/$type.backup.conf"
7384

74-
# Listing database
75-
case $format in
76-
json) json_list_ftp_host ;;
77-
plain) nohead=1; shell_list_ftp_host;;
78-
shell) shell_list_ftp_host | column -t ;;
79-
*) check_args '2' '0' '[FORMAT]'
85+
# Listing data
86+
case $format in
87+
json) json_list ;;
88+
plain) plain_list ;;
89+
csv) csv_list ;;
90+
shell) shell_list |column -t ;;
8091
esac
8192

8293

bin/v-list-cron-job

Lines changed: 61 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# info: list cron job
33
# options: USER JOB [FORMAT]
44
#
5-
# The function of obtaining cron job settings.
5+
# The function of obtaining cron job parameters.
66

77

88
#----------------------------------------------------------#
@@ -17,44 +17,46 @@ format=${3-shell}
1717
# Includes
1818
source $VESTA/func/main.sh
1919

20-
# Json function
21-
json_list_job() {
22-
i=1
23-
fileds_count=$(echo "$fields" | wc -w)
24-
line=$(grep "JOB='$job'" $conf)
25-
echo '{'
26-
eval $line
27-
for field in $fields; do
28-
eval value=$field
29-
value=$(echo "$value"|sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
30-
if [ "$i" -eq 1 ]; then
31-
echo -e "\t\"$value\": {"
32-
else
33-
if [ "$fileds_count" -eq "$i" ]; then
34-
echo -e "\t\t\"${field//$/}\": \"$value\""
35-
else
36-
echo -e "\t\t\"${field//$/}\": \"$value\","
37-
fi
38-
fi
39-
(( ++i))
40-
done
41-
if [ -n "$value" ]; then
42-
echo -e ' }'
43-
fi
44-
echo -e "}"
20+
# JSON list function
21+
json_list() {
22+
echo "{"
23+
echo -n ' "'$job'": {
24+
"MIN": "'$MIN'",
25+
"HOUR": "'$HOUR'",
26+
"DAY": "'$HOUR'",
27+
"MONTH": "'$MONTH'",
28+
"WDAY": "'$WDAY'",
29+
"CMD": "'$CMD'",
30+
"JOB": "'$JOB'",
31+
"SUSPENDED": "'$SUSPENDED'",
32+
"TIME": "'$TIME'",
33+
"DATE": "'$DATE'"
34+
}'
35+
echo
36+
echo '}'
4537
}
4638

47-
# Shell function
48-
shell_list_job() {
49-
line=$(grep "JOB='$job'" $conf)
50-
eval $line
51-
for field in $fields; do
52-
eval key="$field"
53-
if [ -z "$key" ]; then
54-
key=NULL
55-
fi
56-
echo "${field//$/}: $key "
57-
done
39+
# SHELL list function
40+
shell_list() {
41+
echo "MINUTE: $MIN"
42+
echo "HOUR: $HOUR"
43+
echo "DAY: $DAY"
44+
echo "DAY OF WEEK: $WDAY"
45+
echo "COMMAND: $CMD"
46+
echo "SUSPENDED: $SUSPENDED"
47+
echo "TIME: $TIME"
48+
echo "DATE: $DATE"
49+
}
50+
51+
# PLAIN list function
52+
plain_list() {
53+
echo -e "$MIN\t$HOUR\t$DAY\t$WDAY\t$CMD\t$SUSPENDED\t$TIME\t$DATE"
54+
}
55+
56+
# CSV list function
57+
csv_list() {
58+
echo "MIN,HOUR,DAY,WDAY,CMD,SUSPENDED,TIME,DATE"
59+
echo "$MIN,$HOUR,$DAY,$WDAY,\"$CMD\",$SUSPENDED,$TIME,$DATE'"
5860
}
5961

6062

@@ -63,24 +65,36 @@ shell_list_job() {
6365
#----------------------------------------------------------#
6466

6567
check_args '2' "$#" 'USER JOB [FORMAT]'
68+
is_format_valid 'user'
69+
is_number_format_valid "$job" "job_id"
6670
is_object_valid 'user' 'USER' "$user"
6771

6872

6973
#----------------------------------------------------------#
7074
# Action #
7175
#----------------------------------------------------------#
7276

73-
# Defining config and fields to select
77+
# Defining config
7478
conf=$USER_DATA/cron.conf
75-
fields="\$JOB \$MIN \$HOUR \$DAY \$MONTH \$WDAY \$CMD \$SUSPENDED"
76-
fields="$fields \$TIME \$DATE"
77-
78-
# Listing domains
79-
case $format in
80-
json) json_list_job ;;
81-
plain) nohead=1; shell_list_job ;;
82-
shell) shell_list_job |column -t ;;
83-
*) check_args '2' '0' 'USER JOB [FORMAT]'
79+
80+
# Checking job id
81+
cron_line=$(grep "JOB='$job'" $conf)
82+
if [ -z "$cron_line" ]; then
83+
check_result $E_NOTEXIST "cron job $job doesn't exist"
84+
fi
85+
86+
# Parsing cron job
87+
eval $cron_line
88+
89+
# Replacing quoted and backslahed text
90+
CMD=$(echo "$CMD" |sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
91+
92+
# Listing data
93+
case $format in
94+
json) json_list ;;
95+
plain) plain_list ;;
96+
csv) csv_list ;;
97+
shell) shell_list ;;
8498
esac
8599

86100

0 commit comments

Comments
 (0)