#!/bin/bash # info: list api # options: API [FORMAT] # # example: v-list-api mail-accounts json #----------------------------------------------------------# # Variables & Functions # #----------------------------------------------------------# # Argument definition api="$1" format="${2:-shell}" # Includes # shellcheck source=/etc/hestiacp/hestia.conf source /etc/hestiacp/hestia.conf # shellcheck source=/usr/local/hestia/func/main.sh source $HESTIA/func/main.sh # load config file source_conf "$HESTIA/conf/hestia.conf" # JSON list function json_list() { local COMMANDS_ARR='[]' if [[ -n "$COMMANDS" ]]; then COMMANDS_ARR="[\"$(echo "$COMMANDS" | sed -E 's|,|", "|g')\"]" fi echo '{ "API": "'$api'", "ROLE": "'$ROLE'", "COMMANDS": '$COMMANDS_ARR' }' } # SHELL list function shell_list() { echo "API: $api" echo "ROLE: $ROLE" echo "COMMANDS: $COMMANDS" } #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# check_args '1' "$#" 'API [FORMAT]' if [[ -z "$api" || ! -f "$HESTIA/data/api/${api}" ]]; then check_result "$E_INVALID" "API $api doesn't exist" fi #----------------------------------------------------------# # Action # #----------------------------------------------------------# source_conf "${HESTIA}/data/api/${api}" # Listing data case $format in json) json_list ;; shell) shell_list ;; esac #----------------------------------------------------------# # Hestia # #----------------------------------------------------------# exit