#!/bin/bash # info: list system ip # options: ip [format] # # The function for getting the list of system ip parameters. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition ip=$1 IP=$ip format=${2-shell} # Importing variables source $VESTA/conf/vars.conf source $V_FUNC/shared.func source $V_FUNC/ip.func # Json function json_list_ip() { i=1 fileds_count=$(echo "$fields" | wc -w) ip_data=$(cat $V_IPS/$IP) # Print top bracket echo '{' # Assign key=value eval $ip_data for field in $fields; do 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 (( ++i)) done # If there was any output if [ -n "$value" ]; then echo -e ' }' fi # Printing bottom json bracket echo -e '}' } # Shell function shell_list_ip() { line=$(cat $V_IPS/$IP) # Assing key=value eval $line # Print result line for field in $fields; do eval key="$field" echo "${field//$/}: $key " done } #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# # Checking args check_args '1' "$#" 'ip [format]' # Checking argument format format_validation 'ip' # Checking ip is_sys_ip_valid #----------------------------------------------------------# # Action # #----------------------------------------------------------# conf=$V_IPS/$IP # Defining fileds to select fields='$IP $OWNER $STATUS $NAME $U_SYS_USERS $U_WEB_DOMAINS $INTERFACE $NETMASK $DATE' # Listing ip case $format in json) json_list_ip ;; plain) shell_list_ip ;; shell) shell_list_ip | column -t ;; *) check_args '1' '0' 'ip [format]' esac #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# exit