-
Notifications
You must be signed in to change notification settings - Fork 0
/
site-updater.sh
executable file
·35 lines (32 loc) · 1.92 KB
/
site-updater.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
VERSION=`ejabberdctl status |tail -1 |awk '{ print $2 }'`
GITVERSION=`git --git-dir=/var/src/ejabberd/.git log |head -1 |awk '{print $2}'`
SYSVERSION=`lsb_release -a 2> /dev/null |grep 'Release:' |awk '{ print $2 }'`
UPLOADDAYS=`grep -A1 mod_http_upload_quota /etc/ejabberd/ejabberd.yml |grep max_days |awk '{ print $2 }'`
UPLOADFSIZ=`grep -A8 "mod_http_upload:$" /etc/ejabberd/ejabberd.yml |grep max_size |awk '{ print $2 }' |awk '{ byte =$1 /1024/1024/1024; print byte " GB" }'`
DOMAINS=`sed -n -e '/^hosts:/,/^##/ p' /etc/ejabberd/ejabberd.yml |grep "^ -" |awk '{ print $2 }' |sed 's/"//g'`
for DOMAIN in ${DOMAINS}
do
cd ${DIR}
rm -f current-config.yml
sed "s/example.com/${DOMAIN}/g" _config.yml |sed "s/matt@${DOMAIN}/[email protected]/g" > current-config.yml
sed -i "s/^ejabberd-version.*/ejabberd-version: \"${VERSION}\"/g" current-config.yml
sed -i "s/^ejabberd-gitversion.*/ejabberd-gitversion: \"${GITVERSION}\"/g" current-config.yml
sed -i "s/^ejabberd-upload-days.*/ejabberd-upload-days: \"${UPLOADDAYS}\"/g" current-config.yml
sed -i "s/^ejabberd-upload-fsize.*/ejabberd-upload-fsize: \"${UPLOADFSIZ}\"/g" current-config.yml
sed -i "s/^system-version.*/system-version: \"${SYSVERSION}\"/g" current-config.yml
if [ -x ${DIR}/update-site-certs.sh ]; then
${DIR}/update-site-certs.sh ${DOMAIN}
else
sed -i '/^fingerprint/d' current-config.yml
fi
cd ${DIR} && \
rm -rf /var/www/im.${DOMAIN} && \
if [ ! -f Gemfile.lock ]; then bundle install; fi && \
bundle exec jekyll build -c current-config.yml -q
mv /var/www/im.${DOMAIN}/well-known /var/www/im.${DOMAIN}/.well-known
chown -R www-data:www-data /var/www/im.${DOMAIN}
rm -rf /var/www/im.${DOMAIN}/files ${DIR}/current-config.yml
done
if [ -x /etc/ejabberd/bin/update-tlsa.sh ]; then /etc/ejabberd/bin/update-tlsa.sh; fi