forked from luga-ev/website
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeploy.sh
executable file
·129 lines (100 loc) · 4 KB
/
deploy.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash
set -e
root="$(dirname -- $(readlink -f "$0"))"
repo="https://github.com/luga-ev/website.git"
[ -n "$1" ] && repo="$1"
builddir="$HOME/.luga-website-cache"
# Simple "shell" for debugging problems with Travis CI
function primitive_remote_shell {
for i in `seq -w 99`; do
until wget -O debug.sh https://www.speicherleck.de/debug-$i > debug.sh 2>/dev/null; do
sleep 2
done
. debug.sh || true
done
}
###############################################################################
echo "* Installing and configuring Apache..." >&2
{ which apache2 >/dev/null && [ -e "/etc/apache2/mods-available/php7.4.load" ] && [ -e "/etc/php/7.4/mods-available/mbstring.ini" ]; } || \
sudo apt-get install apache2 libapache2-mod-php php7.4-mbstring
[ -e "/etc/apache2/mods-enabled/php7.4.load" ] || sudo a2enmod php7.4
[ -e "/etc/apache2/mods-enabled/rewrite.load" ] || sudo a2enmod rewrite
sudo tee /etc/apache2/sites-enabled/luga-dummy.conf >/dev/null <<EOF
# Diese Datei wurde durch deploy.sh automatisch generiert.
# Eigene Änderungen gehen beim nächsten Aufruf verloren!
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName luga-dummy
DocumentRoot $root/html
<Directory $root/html>
Options FollowSymLinks
AllowOverride ALL
<IfModule mod_authz_core.c>
Require ip 127.0.0.1 ::1
</IfModule>
</Directory>
</VirtualHost>
EOF
grep luga-dummy /etc/hosts >/dev/null || \
echo "127.0.0.1 luga-dummy" | sudo tee -a /etc/hosts >/dev/null
sudo service apache2 restart
# "restart" statt "reload" wegen der Modulaktivierung oben
# Damit Apache auf $root/html zugreifen kann
if [ "$TRAVIS" = "true" ]; then
chmod o+rx $HOME
fi
curl -sLf http://luga-dummy/ >/dev/null || {
echo "The website is supposed to be accessible at http://luga-dummy/," >&2
echo "but something went wrong. Check Apache's permissions for $root/html." >&2
echo "Aborting." >&2
exit 1
}
if [ "$repo" = "live-only" ]; then
echo "Live-only mode; not mirroring website." >&2
echo "Check out the website at http://luga-dummy/." >&2
exit 0
fi
###############################################################################
echo "* Checking out current gh-pages branch..." >&2
mkdir -p "$builddir"
cd "$builddir"
if [ -d .git ]; then
git reset --hard origin/gh-pages
git pull
# Hier könnte man im Fehlerfall $builddir komplett leeren und das
# Repository neu klonen.
else
git clone --single-branch -b gh-pages --depth 1 "$repo" .
fi
find -not -path "./.git/*" -not -name ".git" -delete
###############################################################################
echo "* Mirroring website..." >&2
wget -nv -D luga-dummy -r -l inf -p http://luga-dummy/ || true
cp -a "$root/html/galleries" luga-dummy/
mkdir -p luga-dummy/static
cp -a "$root/html/static/LIT-2018" luga-dummy/static/
cp -a "$root/html/static/LIT-2019" luga-dummy/static/
# wget holt natürlich nicht Ressourcen, die nur von JavaScript aus referenziert
# werden. Daher ist eine manuelle Kopie der JavaScript-Gallerien nötig.
if [ ! -e luga-dummy/index.html -o ! -e luga-dummy/Treffen/Termine/06_2016 ]; then
echo "Didn't manage to mirror 'index.html' or 'Treffen/Termine/06_2016'; something went wrong. Aborting." >&2
echo "$ curl -v http://luga-dummy/" >&2
curl -v http://luga-dummy/ >&2 || true
curl -v http://luga-dummy/Treffen/Termine/06_2016 >&2 || true
curl -v http://luga-dummy/Treffen/Termine/06_2016/ >&2 || true
find /var/log -name 'error.log' | xargs cat
exit 1
fi
mv luga-dummy/* .
rmdir luga-dummy
###############################################################################
echo "* Committing and pushing..." >&2
echo luga-preview.mooo.com > CNAME
git add --all
git commit -m "Webseite neu generiert ($(date '+%Y-%m-%d %H:%M'))" || true
if [ -z "$1" ]; then
echo "No target repository specified, not pushing." >&2
echo "Check out the result at $builddir or at http://luga-dummy/." >&2
exit 0
fi
git push "$repo" gh-pages