From fa570e400977168a38fb64406907a176c6bd0d14 Mon Sep 17 00:00:00 2001 From: Serghey Rodin Date: Wed, 21 Oct 2015 20:29:01 +0300 Subject: [PATCH] json listing support --- bin/v-list-web-domain-accesslog | 45 ++++++++++++++++++++++++++++----- bin/v-list-web-domain-errorlog | 45 ++++++++++++++++++++++++++++----- 2 files changed, 78 insertions(+), 12 deletions(-) diff --git a/bin/v-list-web-domain-accesslog b/bin/v-list-web-domain-accesslog index 9fdff009a..b066b2b2c 100755 --- a/bin/v-list-web-domain-accesslog +++ b/bin/v-list-web-domain-accesslog @@ -1,6 +1,6 @@ #!/bin/bash # info: list web domain access log -# options: USER DOMAIN [LINES] +# options: USER DOMAIN [LINES] [FORMAT] # # The function of obtaining raw access web domain logs. @@ -12,33 +12,66 @@ # Argument defenition user=$1 domain=$2 -lines=${3-70} +ttl=${3-70} +format=${4-shell} # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +# Json function +json_list_log() { + i=1 + echo '[' + for str in $lines; do + str=$(echo "$str" |sed -e 's/"/\\"/g') + if [ "$i" -lt "$counter" ]; then + echo -e "\t\"$str\"," + else + echo -e "\t\"$str\"" + fi + (( ++i)) + done + echo "]" +} + +# Shell function +shell_list_log() { + echo "$lines" +} + #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# -check_args '2' "$#" 'USER DOMAIN [FORMAT]' +check_args '2' "$#" 'USER DOMAIN [LINES] [FORMAT]' +validate_format 'user' 'domain' 'ttl' is_object_valid 'user' 'USER' "$user" is_object_valid 'web' 'DOMAIN' "$domain" + #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Check number of output lines -if [ "$lines" -gt '3000' ]; then +if [ "$ttl" -gt '3000' ]; then read_cmd="cat" else - read_cmd="tail -n $lines" + read_cmd="tail -n $ttl" fi -$read_cmd /var/log/$WEB_SYSTEM/domains/$domain.log +lines=$($read_cmd /var/log/$WEB_SYSTEM/domains/$domain.log) +counter=$(echo "$lines" |wc -l) +IFS=$'\n' + +# Listing logs +case $format in + json) json_list_log ;; + plain) shell_list_log ;; + shell) shell_list_log ;; +esac #----------------------------------------------------------# diff --git a/bin/v-list-web-domain-errorlog b/bin/v-list-web-domain-errorlog index 04520213c..f21b581a3 100755 --- a/bin/v-list-web-domain-errorlog +++ b/bin/v-list-web-domain-errorlog @@ -1,6 +1,6 @@ #!/bin/bash # info: list web domain error log -# options: USER DOMAIN [LINES] +# options: USER DOMAIN [LINES] [FORMAT] # # The function of obtaining raw error web domain logs. @@ -12,33 +12,66 @@ # Argument defenition user=$1 domain=$2 -lines=${3-70} +ttl=${3-70} +format=${4-shell} # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +# Json function +json_list_log() { + i=1 + echo '[' + for str in $lines; do + str=$(echo "$str" |sed -e 's/"/\\"/g') + if [ "$i" -lt "$counter" ]; then + echo -e "\t\"$str\"," + else + echo -e "\t\"$str\"" + fi + (( ++i)) + done + echo "]" +} + +# Shell function +shell_list_log() { + echo "$lines" +} + #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# -check_args '2' "$#" 'USER DOMAIN [FORMAT]' +check_args '2' "$#" 'USER DOMAIN [LINES] [FORMAT]' +validate_format 'user' 'domain' 'ttl' is_object_valid 'user' 'USER' "$user" is_object_valid 'web' 'DOMAIN' "$domain" + #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Check number of output lines -if [ "$lines" -gt '3000' ]; then +if [ "$ttl" -gt '3000' ]; then read_cmd="cat" else - read_cmd="tail -n $lines" + read_cmd="tail -n $ttl" fi -$read_cmd /var/log/$WEB_SYSTEM/domains/$domain.error.log +lines=$($read_cmd /var/log/$WEB_SYSTEM/domains/$domain.error.log) +counter=$(echo "$lines" |wc -l) +IFS=$'\n' + +# Listing logs +case $format in + json) json_list_log ;; + plain) shell_list_log ;; + shell) shell_list_log ;; +esac #----------------------------------------------------------#