v-list-sys-vesta-updates 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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 defenition
  10. format=${1-shell}
  11. # Includes
  12. source $VESTA/func/main.sh
  13. #----------------------------------------------------------#
  14. # Action #
  15. #----------------------------------------------------------#
  16. # Remove upd_flag
  17. rm -f $VESTA/web/.update
  18. # Create tmp file
  19. tmp_file=$(mktemp)
  20. # Check latest version
  21. wget -q -T 1 -t 1 http://c.vestacp.com/latest.txt -O $tmp_file
  22. # Define rpm query format
  23. rpm_format="VERSION='%{VERSION}'"
  24. rpm_format="$rpm_format RELEASE='%{RELEASE}'"
  25. rpm_format="$rpm_format ARCH='%{ARCH}'"
  26. rpm_format="$rpm_format UTIME='%{INSTALLTIME}'\n"
  27. # Check vesta version
  28. eval $(rpm --queryformat="$rpm_format" -q vesta)
  29. DATE=$(date -d @$UTIME +%F)
  30. TIME=$(date -d @$UTIME +%T)
  31. latest=$(grep vesta $tmp_file)
  32. UPDATED='yes'
  33. if [ ! -z "$latest" ] && [ "$latest" != "vesta-$VERSION-$RELEASE" ]; then
  34. UPDATED='no'
  35. set_upd_flag='yes'
  36. fi
  37. str="NAME='vesta' VERSION='$VERSION' RELEASE='$RELEASE' ARCH='$ARCH'"
  38. str="$str UPDATED='$UPDATED' DESCR='core package' TIME='$TIME' DATE='$DATE'"
  39. # Check vesta-php version
  40. eval $(rpm --queryformat="$rpm_format" -q vesta-php)
  41. DATE=$(date -d @$UTIME +%F)
  42. TIME=$(date -d @$UTIME +%T)
  43. latest=$(grep php $tmp_file)
  44. UPDATED='yes'
  45. if [ ! -z "$latest" ] && [ "$latest" != "php-$VERSION-$RELEASE" ]; then
  46. UPDATED='no'
  47. set_upd_flag='yes'
  48. fi
  49. str="$str\nNAME='vesta-php' VERSION='$VERSION' RELEASE='$RELEASE' ARCH='$ARCH'"
  50. str="$str UPDATED='$UPDATED' DESCR='php interpreter' TIME='$TIME'"
  51. str="$str DATE='$DATE'"
  52. # Check vesta-nginx version
  53. eval $(rpm --queryformat="$rpm_format" -q vesta-nginx)
  54. DATE=$(date -d @$UTIME +%F)
  55. TIME=$(date -d @$UTIME +%T)
  56. latest=$(grep nginx $tmp_file)
  57. UPDATED='yes'
  58. if [ ! -z "$latest" ] && [ "$latest" != "nginx-$VERSION-$RELEASE" ]; then
  59. UPDATED='no'
  60. set_upd_flag='yes'
  61. fi
  62. str="$str\nNAME='vesta-nginx' VERSION='$VERSION' RELEASE='$RELEASE'"
  63. str="$str ARCH='$ARCH' UPDATED='$UPDATED' DESCR='internal web server'"
  64. str="$str TIME='$TIME' DATE='$DATE'"
  65. # Create flag if updates avaiable
  66. if [ "$set_upd_flag" == 'yes' ]; then
  67. touch $VESTA/web/.update
  68. chmod a+r $VESTA/web/.update
  69. fi
  70. # Defining config
  71. echo -e "$str" > $tmp_file
  72. conf=$tmp_file
  73. # Defining fileds to select
  74. fields="\$NAME \$VERSION \$RELEASE \$ARCH \$UPDATED \$DESCR \$TIME \$DATE"
  75. # Listing services
  76. case $format in
  77. json) json_list ;;
  78. plain) nohead=1; shell_list ;;
  79. shell) fields='$NAME $VERSION $RELEASE $ARCH $UPDATED $TIME $DATE'
  80. shell_list | column -t ;;
  81. *) check_args '1' '0' 'USER [FORMAT]'
  82. esac
  83. rm -f $tmp_file
  84. #----------------------------------------------------------#
  85. # Vesta #
  86. #----------------------------------------------------------#
  87. exit