Procházet zdrojové kódy

Show custom port with v-list-database-host scripts

Kristan Kenney před 5 roky
rodič
revize
dd485b7b62
4 změnil soubory, kde provedl 54 přidání a 14 odebrání
  1. 2 4
      bin/v-add-database-host
  2. 8 3
      bin/v-list-database-host
  3. 16 7
      bin/v-list-database-hosts
  4. 28 0
      func/db.sh

+ 2 - 4
bin/v-add-database-host

@@ -66,10 +66,8 @@ check_args '4' "$#" "$args_usage"
 
 if [ -z $charsets ]; then charsets="UTF8,LATIN1,WIN1250,WIN1251,WIN1252,WIN1256,WIN1258,KOI8"; fi
 if [ -z $template ]; then template="template1"; fi
-if [ -z $port ]; then 
-    if [ $type = 'mysql' ]; then port="3306"; fi
-    if [ $type = 'pgsql' ]; then port="5432"; fi
-fi
+
+database_set_default_ports
 
 is_format_valid 'host' 'dbuser' 'max_db' 'charsets' 'template' 'port'
 #is_system_enabled "$DB_SYSTEM" 'DB_SYSTEM'

+ 8 - 3
bin/v-list-database-host

@@ -16,12 +16,14 @@ format=${3-shell}
 
 # Includes
 source $HESTIA/func/main.sh
+source $HESTIA/func/db.sh
 
 # JSON list function
 json_list() {
     echo '{'
     echo '    "'$HOST'": {
         "HOST": "'$HOST'",
+        "PORT": "'$PORT'",
         "TYPE": "'$type'",
         "CHARSETS": "'$CHARSETS'",
         "MAX_DB": "'$MAX_DB'",
@@ -38,6 +40,7 @@ json_list() {
 # SHELL list function
 shell_list() {
     echo "HOST:           $HOST"
+    echo "PORT:           $PORT"
     echo "TYPE:           $type"
     echo "CHARSETS:       $CHARSETS"
     echo "MAX_DB:         $MAX_DB"
@@ -51,15 +54,15 @@ shell_list() {
 
 # PLAIN list function
 plain_list() {
-    echo -ne "$HOST\t$type\t$CHARSETS\t$MAX_DB\t$U_SYS_USERS\t"
+    echo -ne "$HOST\t$PORT\t$type\t$CHARSETS\t$MAX_DB\t$U_SYS_USERS\t"
     echo -e "$U_DB_BASES\t$TPL\t$SUSPENDED\t$TIME\t$DATE"
 }
 
 # CSV list function
 csv_list() {
-    echo -n "HOST,TYPE,CHARSETS,MAX_DB,U_SYS_USERS,"
+    echo -n "HOST,PORT,TYPE,CHARSETS,MAX_DB,U_SYS_USERS,"
     echo "U_DB_BASES,TPL,SUSPENDED,TIME,DATE'"
-    echo -n "$HOST,$type,\"$CHARSETS\",$MAX_DB,\"$U_SYS_USERS\","
+    echo -n "$HOST,$PORT,$type,\"$CHARSETS\",$MAX_DB,\"$U_SYS_USERS\","
     echo "$U_DB_BASES,$TPL,$SUSPENDED,$TIME,$DATE"
 }
 
@@ -81,6 +84,8 @@ is_format_valid 'host'
 is_type_format_valid "$type"
 is_object_valid "../../conf/$type" 'HOST' "$host"
 
+# Set default port values if they don't exist in host configuration file
+database_set_default_ports
 
 #----------------------------------------------------------#
 #                       Action                             #

+ 16 - 7
bin/v-list-database-hosts

@@ -14,6 +14,7 @@ format=${1-shell}
 
 # Includes
 source $HESTIA/func/main.sh
+source $HESTIA/func/db.sh
 source $HESTIA/conf/hestia.conf
 
 # JSON list function
@@ -23,6 +24,8 @@ json_list() {
     objects=0
     for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
         if [ -e "$HESTIA/conf/$type.conf" ]; then
+            # Set default port values if they don't exist in database configuration file.
+            database_set_default_ports
             db_hosts=$(grep HOST $HESTIA/conf/$type.conf |wc -l)
             objects=$((objects + db_hosts))
         fi
@@ -35,6 +38,7 @@ json_list() {
                 parse_object_kv_list "$str"
         echo -n '    {
         "HOST": "'$HOST'",
+        "PORT": "'$PORT'",
         "TYPE": "'$type'",
         "CHARSETS": "'$CHARSETS'",
         "MAX_DB": "'$MAX_DB'",
@@ -60,13 +64,15 @@ json_list() {
 # SHELL list function
 shell_list() {
     IFS=$'\n'
-    echo "HOST   TYPE   MAX_DB   DB_USED   SPND   TIME   DATE"
-    echo "----   ----   ------   -------   ----   ----   ----"
+    echo "HOST   PORT   TYPE   MAX_DB   DB_USED   SPND   TIME   DATE"
+    echo "----   ----   ----   ------   -------   ----   ----   ----"
     for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
         if [ -e "$HESTIA/conf/$type.conf" ]; then
+            # Set default port values if they don't exist in database configuration file.
+            database_set_default_ports
             for str in $(cat $HESTIA/conf/$type.conf); do
                 parse_object_kv_list "$str"
-                echo "$HOST $type $MAX_DB $U_DB_BASES $SUSPENDED $TIME $DATE"
+                echo "$HOST $PORT $type $MAX_DB $U_DB_BASES $SUSPENDED $TIME $DATE"
             done
         fi
     done
@@ -77,9 +83,11 @@ plain_list() {
     IFS=$'\n'
     for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
         if [ -e "$HESTIA/conf/$type.conf" ]; then
+            # Set default port values if they don't exist in database configuration file.
+            database_set_default_ports
             for str in $(cat $HESTIA/conf/$type.conf); do
                 parse_object_kv_list "$str"
-                echo -ne "$HOST\t$type\t$CHARSETS\t$MAX_DB\t$U_SYS_USERS\t"
+                echo -ne "$HOST\t$PORT\t$type\t$CHARSETS\t$MAX_DB\t$U_SYS_USERS\t"
                 echo -e "$U_DB_BASES\t$TPL\t$SUSPENDED\t$TIME\t$DATE"
             done
         fi
@@ -89,13 +97,15 @@ plain_list() {
 # CSV list function
 csv_list() {
     IFS=$'\n'
-    echo -n "HOST,TYPE,CHARSETS,MAX_DB,U_SYS_USERS,"
+    echo -n "HOST,PORT,TYPE,CHARSETS,MAX_DB,U_SYS_USERS,"
     echo "U_DB_BASES,TPL,SUSPENDED,TIME,DATE"
     for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
         if [ -e "$HESTIA/conf/$type.conf" ]; then
+            # Set default port values if they don't exist in database configuration file.
+            database_set_default_ports
             for str in $(cat $HESTIA/conf/$type.conf); do
                 parse_object_kv_list "$str"
-                echo -n "$HOST,$type,\"$CHARSETS\",$MAX_DB,\"$U_SYS_USERS\","
+                echo -n "$HOST,$PORT,$type,\"$CHARSETS\",$MAX_DB,\"$U_SYS_USERS\","
                 echo "$U_DB_BASES,$TPL,$SUSPENDED,$TIME,$DATE"
             done
         fi
@@ -115,7 +125,6 @@ is_type_format_valid() {
 #                    Verifications                         #
 #----------------------------------------------------------#
 
-
 #----------------------------------------------------------#
 #                       Action                             #
 #----------------------------------------------------------#

+ 28 - 0
func/db.sh

@@ -1,3 +1,31 @@
+# Global
+database_set_default_ports() {
+
+    # Set default ports for MySQL and PostgreSQL
+    mysql_default="3306"
+    pgsql_default="5432"
+
+    # Handle missing values for both $PORT and $port
+    # however don't override both at once or custom ports will be overridden.
+
+    if [ -z "$PORT" ]; then 
+        if [ "$type" = 'mysql' ]; then 
+            PORT="$mysql_default"
+        fi
+        if [ "$type" = 'pgsql' ]; then
+            PORT="$pgsql_default"
+        fi
+    fi
+    if [ -z "$port" ]; then 
+        if [ "$type" = 'mysql' ]; then 
+            port="$mysql_default"
+        fi
+        if [ "$type" = 'pgsql' ]; then
+            port="$pgsql_default"
+        fi
+    fi
+}
+
 # MySQL
 mysql_connect() {
     host_str=$(grep "HOST='$1'" $HESTIA/conf/mysql.conf)