v-list-sys-vesta-updates 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. #!/bin/bash
  2. # info: list system updates
  3. # options: [FORMAT]
  4. #
  5. # The function checks available updates for vesta packages.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. format=${1-shell}
  11. # Includes
  12. source $VESTA/func/main.sh
  13. source $VESTA/conf/vesta.conf
  14. fields="\$NAME \$VERSION \$RELEASE \$ARCH \$UPDATED \$DESCR \$TIME \$DATE"
  15. # JSON list function
  16. json_list() {
  17. IFS=$'\n'
  18. i=1
  19. objects=$(echo -e "$data" |grep NAME |wc -l)
  20. echo "{"
  21. for str in $(echo -e "$data"); do
  22. eval $str
  23. echo -n ' "'$NAME'": {
  24. "VERSION": "'$VERSION'",
  25. "RELEASE": "'$RELEASE'",
  26. "ARCH": "'$ARCH'",
  27. "UPDATED": "'$UPDATED'",
  28. "DESCR": "'$DESCR'",
  29. "TIME": "'$TIME'",
  30. "DATE": "'$DATE'"
  31. }'
  32. if [ "$i" -lt "$objects" ]; then
  33. echo ','
  34. else
  35. echo
  36. fi
  37. ((i++))
  38. done
  39. echo '}'
  40. }
  41. # SHELL list function
  42. shell_list() {
  43. IFS=$'\n'
  44. echo "PKG VER REL ARCH UPDT DATE"
  45. echo "--- --- --- ---- ---- ----"
  46. for str in $(echo -e "$data"); do
  47. eval $str
  48. echo "$NAME $VERSION $RELEASE $ARCH $UPDATED $DATE"
  49. done
  50. }
  51. #----------------------------------------------------------#
  52. # Action #
  53. #----------------------------------------------------------#
  54. # Checking official latest version
  55. latest=$(wget -q -T 1 -t 1 http://c.vestacp.com/latest.txt -O -)
  56. # Checking installed vesta version
  57. if [ -e "/etc/redhat-release" ]; then
  58. rpm_format="VERSION='%{VERSION}'"
  59. rpm_format="$rpm_format RELEASE='%{RELEASE}'"
  60. rpm_format="$rpm_format ARCH='%{ARCH}'"
  61. rpm_format="$rpm_format UTIME='%{INSTALLTIME}'\n"
  62. eval $(rpm --queryformat="$rpm_format" -q vesta)
  63. DATE=$(date -d @$UTIME +%F)
  64. TIME=$(date -d @$UTIME +%T)
  65. else
  66. dpkg_data=$(dpkg-query -s vesta)
  67. pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/vesta.list)
  68. ARCH=$(echo "$dpkg_data"|grep Architecture |cut -f 2 -d ' ')
  69. VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-)
  70. RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-)
  71. DATE=$(date -d @$pkg_date +"%F")
  72. TIME=$(date -d @$pkg_date +"%T")
  73. fi
  74. UPDATED='yes'
  75. if [ ! -z "$latest" ] && [ "$latest" \> "vesta-$VERSION-$RELEASE" ]; then
  76. UPDATED='no'
  77. fi
  78. data="NAME='vesta' VERSION='$VERSION' RELEASE='$RELEASE' ARCH='$ARCH'"
  79. data="$data UPDATED='$UPDATED' DESCR='core package' TIME='$TIME' DATE='$DATE'"
  80. # Checking installed vesta-php version
  81. if [ -e "/etc/redhat-release" ]; then
  82. eval $(rpm --queryformat="$rpm_format" -q vesta-php)
  83. DATE=$(date -d @$UTIME +%F)
  84. TIME=$(date -d @$UTIME +%T)
  85. else
  86. dpkg_data=$(dpkg-query -s vesta-php)
  87. pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/vesta-php.list)
  88. ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ')
  89. VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-)
  90. RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-)
  91. DATE=$(date -d @$pkg_date +"%F")
  92. TIME=$(date -d @$pkg_date +"%T")
  93. fi
  94. data="$data\nNAME='vesta-php' VERSION='$VERSION' RELEASE='$RELEASE'"
  95. data="$data ARCH='$ARCH' UPDATED='$UPDATED' DESCR='php interpreter'"
  96. data="$data TIME='$TIME' DATE='$DATE'"
  97. # Checking installed vesta-nginx version
  98. if [ -e "/etc/redhat-release" ]; then
  99. eval $(rpm --queryformat="$rpm_format" -q vesta-nginx)
  100. DATE=$(date -d @$UTIME +%F)
  101. TIME=$(date -d @$UTIME +%T)
  102. else
  103. dpkg_data=$(dpkg-query -s vesta-nginx)
  104. pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/vesta-nginx.list)
  105. ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ')
  106. VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-)
  107. RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-)
  108. DATE=$(date -d @$pkg_date +"%F")
  109. TIME=$(date -d @$pkg_date +"%T")
  110. fi
  111. data="$data\nNAME='vesta-nginx' VERSION='$VERSION' RELEASE='$RELEASE'"
  112. data="$data ARCH='$ARCH' UPDATED='$UPDATED' DESCR='internal web server'"
  113. data="$data TIME='$TIME' DATE='$DATE'"
  114. # Checking installed vesta-ioncube version
  115. if [ "$SOFTACULOUS" = 'yes' ]; then
  116. if [ -e "/etc/redhat-release" ]; then
  117. eval $(rpm --queryformat="$rpm_format" -q vesta-ioncube)
  118. DATE=$(date -d @$UTIME +%F)
  119. TIME=$(date -d @$UTIME +%T)
  120. else
  121. dpkg_data=$(dpkg-query -s vesta-ioncube)
  122. pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/vesta-php.list)
  123. ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ')
  124. VERSION=$(echo "$dpkg_data"|grep ^Vers |cut -f2 -d ' '|cut -f1 -d \-)
  125. RELEASE=$(echo "$dpkg_data"|grep ^Vers |cut -f2 -d ' '|cut -f2 -d \-)
  126. DATE=$(date -d @$pkg_date +"%F")
  127. TIME=$(date -d @$pkg_date +"%T")
  128. fi
  129. data="$data\nNAME='vesta-ioncube' VERSION='$VERSION' RELEASE='$RELEASE'"
  130. data="$data ARCH='$ARCH' UPDATED='$UPDATED' DESCR='php encoder'"
  131. data="$data TIME='$TIME' DATE='$DATE'"
  132. fi
  133. # Checking installed vesta-softaculous version
  134. if [ "$SOFTACULOUS" = 'yes' ]; then
  135. if [ -e "/etc/redhat-release" ]; then
  136. eval $(rpm --queryformat="$rpm_format" -q vesta-softaculous)
  137. DATE=$(date -d @$UTIME +%F)
  138. TIME=$(date -d @$UTIME +%T)
  139. else
  140. dpkg_data=$(dpkg-query -s vesta-softaculous)
  141. pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/vesta-php.list)
  142. ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ')
  143. VERSION=$(echo "$dpkg_data"|grep ^Vers |cut -f2 -d ' '|cut -f1 -d \-)
  144. RELEASE=$(echo "$dpkg_data"|grep ^Vers |cut -f2 -d ' '|cut -f2 -d \-)
  145. DATE=$(date -d @$pkg_date +"%F")
  146. TIME=$(date -d @$pkg_date +"%T")
  147. fi
  148. data="$data\nNAME='vesta-softaculous' VERSION='$VERSION' RELEASE='$RELEASE'"
  149. data="$data ARCH='$ARCH' UPDATED='$UPDATED' DESCR='app installer'"
  150. data="$data TIME='$TIME' DATE='$DATE'"
  151. fi
  152. # Listing data
  153. case $format in
  154. json) json_list ;;
  155. plain) plain_list ;;
  156. csv) csv_list ;;
  157. shell) shell_list |column -t;;
  158. esac
  159. #----------------------------------------------------------#
  160. # Vesta #
  161. #----------------------------------------------------------#
  162. exit