|
@@ -22,18 +22,28 @@ source $HESTIA/func/main.sh
|
|
|
# load config file
|
|
# load config file
|
|
|
source_conf "$HESTIA/conf/hestia.conf"
|
|
source_conf "$HESTIA/conf/hestia.conf"
|
|
|
|
|
|
|
|
|
|
+# Read and filter IP config file
|
|
|
|
|
+read_ip_config() {
|
|
|
|
|
+ VERSION=""
|
|
|
|
|
+ source_conf "$HESTIA/data/ips/$1"
|
|
|
|
|
+ if [ -z "$VERSION" ]; then
|
|
|
|
|
+ VERSION=4
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
# JSON list function
|
|
# JSON list function
|
|
|
json_list() {
|
|
json_list() {
|
|
|
echo '{'
|
|
echo '{'
|
|
|
ip_count=$(echo "$ips" | wc -l)
|
|
ip_count=$(echo "$ips" | wc -l)
|
|
|
i=1
|
|
i=1
|
|
|
for IP in $ips; do
|
|
for IP in $ips; do
|
|
|
- source_conf "$HESTIA/data/ips/$IP"
|
|
|
|
|
|
|
+ read_ip_config ${IP}
|
|
|
echo -n ' "'$IP'": {
|
|
echo -n ' "'$IP'": {
|
|
|
"OWNER": "'$OWNER'",
|
|
"OWNER": "'$OWNER'",
|
|
|
"STATUS": "'$STATUS'",
|
|
"STATUS": "'$STATUS'",
|
|
|
"NAME": "'$NAME'",
|
|
"NAME": "'$NAME'",
|
|
|
- "NAT": "'$NAT'"
|
|
|
|
|
|
|
+ "NAT": "'$NAT'",
|
|
|
|
|
+ "VERSION": "'$VERSION'"
|
|
|
}'
|
|
}'
|
|
|
if [ "$i" -lt "$ip_count" ]; then
|
|
if [ "$i" -lt "$ip_count" ]; then
|
|
|
echo ','
|
|
echo ','
|
|
@@ -47,25 +57,26 @@ json_list() {
|
|
|
|
|
|
|
|
# SHELL list function
|
|
# SHELL list function
|
|
|
shell_list() {
|
|
shell_list() {
|
|
|
- echo "IP NAT OWNER STATUS NAME"
|
|
|
|
|
- echo "-- --- ----- ------ ---"
|
|
|
|
|
|
|
+ echo "IP NAT OWNER STATUS NAME VER"
|
|
|
|
|
+ echo "-- --- ----- ------ ---- ---"
|
|
|
for IP in $ips; do
|
|
for IP in $ips; do
|
|
|
- source_conf "$HESTIA/data/ips/$IP"
|
|
|
|
|
|
|
+ read_ip_config ${IP}
|
|
|
if [ -z "$NAT" ]; then
|
|
if [ -z "$NAT" ]; then
|
|
|
NAT='no'
|
|
NAT='no'
|
|
|
fi
|
|
fi
|
|
|
if [ -z "$NAME" ]; then
|
|
if [ -z "$NAME" ]; then
|
|
|
NAME='no'
|
|
NAME='no'
|
|
|
fi
|
|
fi
|
|
|
- echo "$IP $NAT $OWNER $STATUS $NAME"
|
|
|
|
|
|
|
+ echo "$IP $NAT $OWNER $STATUS $NAME $VERSION"
|
|
|
done
|
|
done
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# PLAIN list function
|
|
# PLAIN list function
|
|
|
plain_list() {
|
|
plain_list() {
|
|
|
for IP in $ips; do
|
|
for IP in $ips; do
|
|
|
- source_conf "$HESTIA/data/ips/$IP"
|
|
|
|
|
- echo -e "$IP\t$OWNER\t$STATUS\t$NAME\t$NAT"
|
|
|
|
|
|
|
+ VERSION=""
|
|
|
|
|
+ read_ip_config ${IP}
|
|
|
|
|
+ echo -e "$IP\t$OWNER\t$STATUS\t$NAME\t$NAT\t$VERSION"
|
|
|
done
|
|
done
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -73,8 +84,8 @@ plain_list() {
|
|
|
csv_list() {
|
|
csv_list() {
|
|
|
echo "IP,OWNER,STATUS,NAME,NAT"
|
|
echo "IP,OWNER,STATUS,NAME,NAT"
|
|
|
for IP in $ips; do
|
|
for IP in $ips; do
|
|
|
- source_conf "$HESTIA/data/ips/$IP"
|
|
|
|
|
- echo "$IP,$OWNER,$STATUS,$NAME,$NAT"
|
|
|
|
|
|
|
+ read_ip_config ${IP}
|
|
|
|
|
+ echo "$IP,$OWNER,$STATUS,$NAME,$NAT,$VERSION"
|
|
|
done
|
|
done
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -92,11 +103,8 @@ is_object_valid 'user' 'USER' "$user"
|
|
|
|
|
|
|
|
# Defining fileds to select
|
|
# Defining fileds to select
|
|
|
owner='admin'
|
|
owner='admin'
|
|
|
-owner_ips=$(grep -A 1 -H "OWNER='$owner'" $HESTIA/data/ips/*)
|
|
|
|
|
-owner_ips=$(echo "$owner_ips" | grep "STATUS='shared'")
|
|
|
|
|
-owner_ips=$(echo "$owner_ips" | cut -f 7 -d / | cut -f 1 -d -)
|
|
|
|
|
-user_ips=$(grep -H "OWNER='$user'" $HESTIA/data/ips/*)
|
|
|
|
|
-user_ips=$(echo "$user_ips" | cut -f 7 -d / | cut -f 1 -d :)
|
|
|
|
|
|
|
+owner_ips="$(grep -A 1 -H "OWNER='$owner'" $HESTIA/data/ips/* | grep "STATUS='shared'" | sed 's/.*\/\([^\/*]\)/\1/;s/-STATUS.*//')"
|
|
|
|
|
+user_ips="$(grep -l "OWNER='$user'" $HESTIA/data/ips/* | sed 's/.*\/\([^\/*]\)/\1/')"
|
|
|
ips=$(echo -e "$user_ips\n$owner_ips" | sort -u | sed "/^$/d")
|
|
ips=$(echo -e "$user_ips\n$owner_ips" | sort -u | sed "/^$/d")
|
|
|
fields='$IP $OWNER $STATUS $NAME $NAT'
|
|
fields='$IP $OWNER $STATUS $NAME $NAT'
|
|
|
|
|
|