#!/bin/bash
# info: list system config
# options: [FORMAT]
#
# The function for obtaining the list of system parameters.


#----------------------------------------------------------#
#                    Variable&Function                     #
#----------------------------------------------------------#

# Argument definition
format=${1-shell}

# Json function
json_list_conf() {
    lines=$(wc -l $VESTA/conf/vesta.conf | cut -f 1 -d ' ')
    i='0'
    IFS=$'\n'
    echo -e "{\n\t\"config\": {"
    for str in $(cat $VESTA/conf/vesta.conf); do
        (( ++i))
        key=${str%%=*}
        value=${str#*=}
        if [ "$i" -lt "$lines" ]; then
            echo -e "\t\t\"$key\": \"${value//\'/}\","
        else
            echo -e "\t\t\"$key\": \"${value//\'/}\""
        fi
    done
    echo -e "\t}\n}"
}

# Shell function
shell_list_conf() {
    IFS=$'\n'
    for str in $(cat $VESTA/conf/vesta.conf); do
        key=${str%%=*}
        value=${str#*=}
        echo "$key: ${value//\'/}"
    done
}


#----------------------------------------------------------#
#                       Action                             #
#----------------------------------------------------------#

# Listing system config
case $format in 
    json)   json_list_conf ;;
    plain)  shell_list_conf ;;
    shell)  shell_list_conf | column -t ;;
esac


#----------------------------------------------------------#
#                       Vesta                              #
#----------------------------------------------------------#

exit
