Просмотр исходного кода

IPV6: Revised update list system IPs

bin/v-list-sys-ips
asmcc 3 лет назад
Родитель
Сommit
fbe675e93d
1 измененных файлов с 52 добавлено и 61 удалено
  1. 52 61
      bin/v-list-sys-ips

+ 52 - 61
bin/v-list-sys-ips

@@ -23,35 +23,41 @@ source $HESTIA/func/ip.sh
 # load config file
 source_conf "$HESTIA/conf/hestia.conf"
 
+# ONLY IP list function
+only_ip_list() {
+	ls $HESTIA/data/ips/ | while read IP; do
+		ip_format="$(get_ip_format ${IP})"
+		if [ -n "$ip_format" ]; then 
+			echo "$IP"
+		fi
+	done
+}
+
 # JSON list function
 json_list() {
 	echo '{'
-	ip_count=$(ls $HESTIA/data/ips/ | wc -l)
 	i=1
-	while read IP; do
-		ip_format="$(get_ip_format ${IP})"
-		if [ -n "$ip_format" ]; then 
-			source_conf "$HESTIA/data/ips/$IP"
-			echo -n '    "'$IP'": {
-			"OWNER": "'$OWNER'",
-			"STATUS": "'$STATUS'",
-			"NAME": "'$NAME'",
-			"U_SYS_USERS": "'$U_SYS_USERS'",
-			"U_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
-			"INTERFACE": "'$INTERFACE'",
-			"NETMASK": "'$NETMASK'",
-			"NAT": "'$NAT'",
-			"TIME": "'$TIME'",
-			"DATE": "'$DATE'"
-			}'
-			if [ "$i" -lt "$ip_count" ]; then
-				echo ','
-			else
-				echo
-			fi
-			((i++))
+	echo "$IPS" | while read IP; do
+		source_conf "$HESTIA/data/ips/$IP"
+		echo -n '    "'$IP'": {
+		"OWNER": "'$OWNER'",
+		"STATUS": "'$STATUS'",
+		"NAME": "'$NAME'",
+		"U_SYS_USERS": "'$U_SYS_USERS'",
+		"U_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
+		"INTERFACE": "'$INTERFACE'",
+		"NETMASK": "'$NETMASK'",
+		"NAT": "'$NAT'",
+		"TIME": "'$TIME'",
+		"DATE": "'$DATE'"
+		}'
+		if [ "$i" -lt "$IPN" ]; then
+			echo ','
+		else
+			echo
 		fi
-	done < <(ls $HESTIA/data/ips/)
+		((i++))
+	done
 	echo '}'
 }
 
@@ -59,66 +65,51 @@ json_list() {
 shell_list() {
 	echo "IP   MASK   NAT    STATUS   WEB  DATE"
 	echo "--   ----   ---    ------   ---  ----"
-	while read IP; do
-		ip_format="$(get_ip_format ${IP})"
-		if [ -n "$ip_format" ]; then 
-			source_conf "$HESTIA/data/ips/$IP"
-			if [ -z "$NAT" ]; then
-				NAT='no'
-			fi
-			echo "$IP $NETMASK $NAT $STATUS $U_WEB_DOMAINS $DATE"
+	echo "$IPS" | while read IP; do
+		source_conf "$HESTIA/data/ips/$IP"
+		if [ -z "$NAT" ]; then
+			NAT='no'
 		fi
-	done < <(ls $HESTIA/data/ips/)
+		echo "$IP $NETMASK $NAT $STATUS $U_WEB_DOMAINS $DATE"
+	done
 }
 
 # PLAIN list function
 plain_list() {
-	while read IP; do
-		ip_format="$(get_ip_format ${IP})"
-		if [ -n "$ip_format" ]; then 
-			source_conf "$HESTIA/data/ips/$IP"
-			echo -ne "$IP\t$OWNER\t$STATUS\t$NAME\t$U_SYS_USERS\t$U_WEB_DOMAINS\t"
-			echo -e "$INTERFACE\t$NETMASK\t$NAT\t$TIME\t$DATE"
-		fi
-	done < <(ls $HESTIA/data/ips/)
+	echo "$IPS" | while read IP; do
+		source_conf "$HESTIA/data/ips/$IP"
+		echo -ne "$IP\t$OWNER\t$STATUS\t$NAME\t$U_SYS_USERS\t$U_WEB_DOMAINS\t"
+		echo -e "$INTERFACE\t$NETMASK\t$NAT\t$TIME\t$DATE"
+	done
 }
 
 # CSV list function
 csv_list() {
 	echo -n "IP,OWNER,STATUS,NAME,U_SYS_USERS,U_WEB_DOMAINS,INTERFACE"
 	echo "NETMASK,NAT,TIME,DATE"
-	while read IP; do
-		ip_format="$(get_ip_format ${IP})"
-		if [ -n "$ip_format" ]; then 
-			source_conf "$HESTIA/data/ips/$IP"
-			echo -n "$IP,$OWNER,$STATUS,$NAME,\"$U_SYS_USERS\",$U_WEB_DOMAINS,"
-			echo "$INTERFACE, $NETMASK,$NAT,$TIME,$DATE"
-		fi
-	done < <(ls $HESTIA/data/ips/)
-}
-
-# ONLY IP list function
-only_ip_list() {
-	while read IP; do
-		ip_format="$(get_ip_format ${IP})"
-		if [ -n "$ip_format" ]; then 
-			source_conf "$HESTIA/data/ips/$IP"
-			echo "$IP"
-		fi
-	done < <(ls $HESTIA/data/ips/)
+	echo "$IPS" | while read IP; do
+		source_conf "$HESTIA/data/ips/$IP"
+		echo -n "$IP,$OWNER,$STATUS,$NAME,\"$U_SYS_USERS\",$U_WEB_DOMAINS,"
+		echo "$INTERFACE, $NETMASK,$NAT,$TIME,$DATE"
+	done
 }
 
 #----------------------------------------------------------#
 #                       Action                             #
 #----------------------------------------------------------#
 
+# Read IPs from IP configuration directory
+IPS="$(only_ip_list)"			# IP Listing
+IPN=$(echo "$IPS" | wc -l)		# Number of IPs
+
+
 # Listing data
 case $format in
 	json) json_list ;;
 	plain) plain_list ;;
 	csv) csv_list ;;
 	shell) shell_list | column -t ;;
-	list) only_ip_list ;;
+	list) echo "$IPS" ;;
 esac
 
 #----------------------------------------------------------#