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

Check phpmyadmin version before installing

Robert Zollner 6 лет назад
Родитель
Сommit
fb71ade215
2 измененных файлов с 35 добавлено и 21 удалено
  1. 28 19
      install/upgrade/0.9.8-28.sh
  2. 7 2
      install/upgrade/1.00.0-190618.sh

+ 28 - 19
install/upgrade/0.9.8-28.sh

@@ -3,6 +3,8 @@ HESTIA="/usr/local/hestia"
 HESTIA_BACKUP="/root/hst_upgrade/$(date +%d%m%Y%H%M)"
 HESTIA_BACKUP="/root/hst_upgrade/$(date +%d%m%Y%H%M)"
 spinner="/-\|"
 spinner="/-\|"
 
 
+function version_ge(){ test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" -o ! -z "$1" -a "$1" = "$2"; }
+
 # Set version(s)
 # Set version(s)
 pma_v='4.8.5'
 pma_v='4.8.5'
 
 
@@ -11,31 +13,38 @@ if [ "$DB_SYSTEM" = 'mysql' ]; then
     # Display upgrade information
     # Display upgrade information
     echo "(*) Upgrading phpMyAdmin to v$pma_v..."
     echo "(*) Upgrading phpMyAdmin to v$pma_v..."
 
 
-    # Download latest phpMyAdmin release
-    wget --quiet https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz
+    pma_release_file=$(ls /usr/share/phpmyadmin/RELEASE-DATE-* 2>/dev/null |tail -n 1)
+    if version_ge "${pma_release_file##*-}" "$pma_v"; then
+        echo "(*) phpMyAdmin $pma_v or newer is already installed: ${pma_release_file##*-}, skipping update..."
+    else
+        [ -d /usr/share/phpmyadmin ] || mkdir -p /usr/share/phpmyadmin
 
 
-    # Unpack files
-    tar xzf phpMyAdmin-$pma_v-all-languages.tar.gz
+        # Download latest phpMyAdmin release
+        wget --quiet https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz
 
 
-    # Delete file to prevent error
-    rm -fr /usr/share/phpmyadmin/doc/html
+        # Unpack files
+        tar xzf phpMyAdmin-$pma_v-all-languages.tar.gz
 
 
-    # Overwrite old files
-    cp -rf phpMyAdmin-$pma_v-all-languages/* /usr/share/phpmyadmin
+        # Delete file to prevent error
+        rm -fr /usr/share/phpmyadmin/doc/html
 
 
-    # Set config and log directory
-    sed -i "s|define('CONFIG_DIR', '');|define('CONFIG_DIR', '/etc/phpmyadmin/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
-    sed -i "s|define('TEMP_DIR', './tmp/');|define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
+        # Overwrite old files
+        cp -rf phpMyAdmin-$pma_v-all-languages/* /usr/share/phpmyadmin
 
 
-    # Create temporary folder and change permissions
-    if [ ! -d /usr/share/phpmyadmin/tmp ]; then
-        mkdir /usr/share/phpmyadmin/tmp
-        chmod 777 /usr/share/phpmyadmin/tmp
-    fi
+        # Set config and log directory
+        sed -i "s|define('CONFIG_DIR', '');|define('CONFIG_DIR', '/etc/phpmyadmin/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
+        sed -i "s|define('TEMP_DIR', './tmp/');|define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
 
 
-    # Clean up
-    rm -fr phpMyAdmin-$pma_v-all-languages
-    rm -f phpMyAdmin-$pma_v-all-languages.tar.gz
+        # Create temporary folder and change permissions
+        if [ ! -d /usr/share/phpmyadmin/tmp ]; then
+            mkdir /usr/share/phpmyadmin/tmp
+            chmod 777 /usr/share/phpmyadmin/tmp
+        fi
+
+        # Clean up
+        rm -fr phpMyAdmin-$pma_v-all-languages
+        rm -f phpMyAdmin-$pma_v-all-languages.tar.gz
+    fi
 fi
 fi
 
 
 # Add amd64 to repositories to prevent notifications - https://goo.gl/hmsSV7
 # Add amd64 to repositories to prevent notifications - https://goo.gl/hmsSV7

+ 7 - 2
install/upgrade/1.00.0-190618.sh

@@ -18,11 +18,14 @@ source /usr/local/hestia/conf/hestia.conf
 # Get hestia version
 # Get hestia version
 version=$(dpkg -l | awk '$2=="hestia" { print $3 }')
 version=$(dpkg -l | awk '$2=="hestia" { print $3 }')
 
 
+function version_ge(){ test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" -o ! -z "$1" -a "$1" = "$2"; }
+
 # Compare version for upgrade routine
 # Compare version for upgrade routine
 if [ "$version" != "0.9.8-28" ]; then
 if [ "$version" != "0.9.8-28" ]; then
     source $HESTIA/install/upgrade/0.9.8-28.sh
     source $HESTIA/install/upgrade/0.9.8-28.sh
 fi
 fi
 
 
+
 # Set phpMyAdmin version for upgrade
 # Set phpMyAdmin version for upgrade
 pma_v='4.9.0.1'
 pma_v='4.9.0.1'
 
 
@@ -403,11 +406,13 @@ done
 
 
 # Upgrade phpMyAdmin if applicable
 # Upgrade phpMyAdmin if applicable
 if [ "$DB_SYSTEM" = 'mysql' ]; then
 if [ "$DB_SYSTEM" = 'mysql' ]; then
-    if [ -e "/usr/share/phpmyadmin/RELEASE-DATE-$pma_v" ]; then
-        echo "(*) phpMyAdmin $pma_v is already installed, skipping update..."
+    pma_release_file=$(ls /usr/share/phpmyadmin/RELEASE-DATE-* 2>/dev/null |tail -n 1)
+    if version_ge "${pma_release_file##*-}" "$pma_v"; then
+        echo "(*) phpMyAdmin $pma_v or newer is already installed: ${pma_release_file##*-}, skipping update..."
     else
     else
         # Display upgrade information
         # Display upgrade information
         echo "(*) Upgrade phpMyAdmin to v$pma_v..."
         echo "(*) Upgrade phpMyAdmin to v$pma_v..."
+        [ -d /usr/share/phpmyadmin ] || mkdir -p /usr/share/phpmyadmin
 
 
         # Download latest phpMyAdmin release
         # Download latest phpMyAdmin release
         wget --quiet https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz
         wget --quiet https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz