#!/bin/bash # info: list database host # options: type host [format] # # The function for obtaining host's database parameters. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition type=$1 host=$2 format=${3-shell} # Importing variables source $VESTA/conf/vars.conf source $V_FUNC/shared.func source $V_FUNC/db.func # Json function json_list_dbhost() { # Definigng variables i=1 # Define words number fields_count=$(echo "$fields" | wc -w) # Reading file line by line line=$(grep "HOST='$host'" $conf) # Print top bracket echo '{' # Assign 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 [ "$fields_count" -eq "$i" ]; then echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"" else echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"," fi fi (( ++i)) done # If there was any output if [ -n "$value" ]; then echo -e "\t}" fi # Printing bottom json bracket echo -e "}" } # Shell function shell_list_dbhost() { # Reading file line by line line=$(grep "HOST='$host'" $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' "$#" 'type host [format]' # Checking argument format format_validation 'host' # Checking db type is_type_valid 'db' "$type" # Checking db host is_db_host_valid #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Defining config type conf=$V_DB/$type.conf # Defining fileds to select fields='$HOST $PORT $MAX_DB $U_SYS_USERS $U_DB_BASES $ACTIVE $DATE' # Listing database case $format in json) json_list_dbhost ;; plain) nohead=1; shell_list_dbhost ;; shell) shell_list_dbhost | column -t;; *) check_args '2' '0' 'type host [format]' esac #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# exit