#!/bin/bash # info: list system user # options: user [format] # # The function for obtainig the list of all user's parameters. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition user=$1 USER="$user" format=${2-shell} # Importing variables source $VESTA/conf/vars.conf source $V_FUNC/shared.func # Json function json_list_user() { i=1 fileds_count=$(echo "$fields" | wc -w) line=$(cat $V_USERS/$USER/user.conf) # Print top bracket echo '{' # Assing 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 [ "$fileds_count" -eq "$i" ]; then echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"" else echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"," fi fi # Updating iterator (( ++i)) done # If there was any output if [ -n "$value" ]; then echo -e ' }' fi # Printing bottom json bracket echo -e "}" } # Shell function shell_list_user() { line=$(cat $V_USERS/$USER/user.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 '1' "$#" 'user [format]' # Checking argument format format_validation 'user' # Checking user is_user_valid #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Defining config conf=$V_USERS/$user/user.conf # Defining fileds to select fields='$USER $FNAME $LNAME $PACKAGE $WEB_DOMAINS $WEB_SSL $WEB_ALIASES $DATABASES $MAIL_DOMAINS $MAIL_BOXES $MAIL_FORWARDERS $DNS_DOMAINS $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $WEB_TPL $SUSPENDED $CONTACT $RKEY $REPORTS $IP_OWNED $U_DIR_DISK $U_DISK $U_BANDWIDTH $U_WEB_DOMAINS $U_WEB_SSL $U_DNS_DOMAINS $U_DATABASES $U_MAIL_DOMAINS $U_CRON_JOBS $DATE' # Listing user case $format in json) json_list_user ;; plain) nohead=1; shell_list_user ;; shell) shell_list_user | column -t ;; *) check_args '1' '0' 'user [format]' ;; esac #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# exit