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

Added hestia update check script.

Raphael Schneeberger 7 лет назад
Родитель
Сommit
919b239cc6
1 измененных файлов с 140 добавлено и 0 удалено
  1. 140 0
      bin/v-list-sys-hestia-updates

+ 140 - 0
bin/v-list-sys-hestia-updates

@@ -0,0 +1,140 @@
+#!/bin/bash
+# info: list system updates
+# options: [FORMAT]
+#
+# The function checks available updates for hestia packages.
+
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument definition
+format=${1-shell}
+
+# Includes
+source $HESTIA/func/main.sh
+source $HESTIA/conf/hestia.conf
+fields="\$NAME \$VERSION \$RELEASE \$ARCH \$UPDATED \$DESCR \$TIME \$DATE"
+
+# JSON list function
+json_list() {
+    IFS=$'\n'
+    i=1
+    objects=$(echo -e "$data" |grep NAME |wc -l)
+    echo "{"
+    for str in $(echo -e "$data"); do
+        eval $str
+        echo -n '    "'$NAME'": {
+        "VERSION": "'$VERSION'",
+        "RELEASE": "'$RELEASE'",
+        "ARCH": "'$ARCH'",
+        "UPDATED": "'$UPDATED'",
+        "DESCR": "'$DESCR'",
+        "TIME": "'$TIME'",
+        "DATE": "'$DATE'"
+    }'
+        if [ "$i" -lt "$objects" ]; then
+            echo ','
+        else
+            echo
+        fi
+        ((i++))
+    done
+    echo '}'
+}
+
+# SHELL list function
+shell_list() {
+    IFS=$'\n'
+    echo "PKG   VER   REL   ARCH   UPDT   DATE"
+    echo "---   ---   ---   ----   ----   ----"
+    for str in $(echo -e "$data"); do
+        eval $str
+        echo "$NAME $VERSION $RELEASE $ARCH $UPDATED $DATE"
+    done
+}
+
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+
+# Checking official latest version
+latest=$(wget -q -T 1 -t 1 http://gpg.hestiacp.com/latest.txt -O -)
+
+# Checking installed hestia version
+if [ -d "/etc/sysconfig" ]; then
+    rpm_format="VERSION='%{VERSION}'"
+    rpm_format="$rpm_format RELEASE='%{RELEASE}'"
+    rpm_format="$rpm_format ARCH='%{ARCH}'"
+    rpm_format="$rpm_format UTIME='%{INSTALLTIME}'\n"
+    eval $(rpm --queryformat="$rpm_format" -q hestia)
+    DATE=$(date -d @$UTIME +%F)
+    TIME=$(date -d @$UTIME +%T)
+else
+    dpkg_data=$(dpkg-query -s hestia)
+    pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/hestia.list)
+    ARCH=$(echo "$dpkg_data"|grep Architecture |cut -f 2 -d ' ')
+    VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-)
+    RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-)
+    DATE=$(date -d @$pkg_date +"%F")
+    TIME=$(date -d @$pkg_date +"%T")
+fi
+UPDATED='yes'
+if [ ! -z "$latest" ] && [ "$latest" \> "hestia-$VERSION-$RELEASE" ]; then
+    UPDATED='no'
+fi
+data="NAME='hestia' VERSION='$VERSION' RELEASE='$RELEASE' ARCH='$ARCH'"
+data="$data UPDATED='$UPDATED' DESCR='core package' TIME='$TIME' DATE='$DATE'"
+
+# Checking installed hestia-php version
+if [ -d "/etc/sysconfig" ]; then
+    eval $(rpm --queryformat="$rpm_format" -q hestia-php)
+    DATE=$(date -d @$UTIME +%F)
+    TIME=$(date -d @$UTIME +%T)
+else
+    dpkg_data=$(dpkg-query -s hestia-php)
+    pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/hestia-php.list)
+    ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ')
+    VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-)
+    RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-)
+    DATE=$(date -d @$pkg_date +"%F")
+    TIME=$(date -d @$pkg_date +"%T")
+fi
+data="$data\nNAME='hestia-php' VERSION='$VERSION' RELEASE='$RELEASE'"
+data="$data ARCH='$ARCH' UPDATED='$UPDATED' DESCR='php interpreter'"
+data="$data TIME='$TIME' DATE='$DATE'"
+
+# Checking installed hestia-nginx version
+if [ -d "/etc/sysconfig" ]; then
+    eval $(rpm --queryformat="$rpm_format" -q hestia-nginx)
+    DATE=$(date -d @$UTIME +%F)
+    TIME=$(date -d @$UTIME +%T)
+else
+    dpkg_data=$(dpkg-query -s hestia-nginx)
+    pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/hestia-nginx.list)
+    ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ')
+    VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-)
+    RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-)
+    DATE=$(date -d @$pkg_date +"%F")
+    TIME=$(date -d @$pkg_date +"%T")
+fi
+data="$data\nNAME='hestia-nginx' VERSION='$VERSION' RELEASE='$RELEASE'"
+data="$data ARCH='$ARCH' UPDATED='$UPDATED' DESCR='internal web server'"
+data="$data TIME='$TIME' DATE='$DATE'"
+
+# Listing data
+case $format in
+    json)   json_list ;;
+    plain)  plain_list ;;
+    csv)    csv_list ;;
+    shell)  shell_list |column -t;;
+esac
+
+
+#----------------------------------------------------------#
+#                       Hestia                             #
+#----------------------------------------------------------#
+
+exit