Skip to content

Commit 919b239

Browse files
authored
Added hestia update check script.
1 parent 0962731 commit 919b239

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed

bin/v-list-sys-hestia-updates

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

0 commit comments

Comments
 (0)