-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate_instance
More file actions
executable file
·131 lines (109 loc) · 3.9 KB
/
update_instance
File metadata and controls
executable file
·131 lines (109 loc) · 3.9 KB
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
130
#!/bin/sh
## define paths
export frontend_path=/opt/lqfb/frontend/2.2.0
export core_path=/opt/lqfb/core/2.2.0
export webmcp_path=/opt/lqfb/webmcp/1.2.5
export update_base=$core_path/update/
#core_updates[${#core_updates[@]}]=core-update.v1.3.1-v1.4.0.sql
#core_updates[${#core_updates[@]}]=core-update.v1.4.0-v2.0.0.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.0-v2.0.1.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.1-v2.0.2.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.2-v2.0.3.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.3-v2.0.4.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.4-v2.0.5.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.5-v2.0.6.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.6-v2.0.7.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.7-v2.0.8.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.8-v2.0.9.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.9-v2.0.10.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.10-v2.0.11.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.11-v2.0.12.sql
#core_updates[${#core_updates[@]}]=core-update.v2.0.12-v2.1.0.sql
#core_updates[${#core_updates[@]}]=core-update.v2.1.0-v2.2.0.sql
export core_updates
echo "Select instance to update ([x] to cancel)":
lineNum=0
while read -a line
do
let lineNum++
echo -e $lineNum: ${line[0]}"\t""\t"${line[2]}"\t""\t"${line[3]}
done < /opt/lqfb/instances
read awnser
if [ $awnser == "x" ]
then
echo "cancelled"
exit 1
fi
if ! [[ "$awnser" =~ ^[0-9]+$ ]] || [ $awnser -gt $lineNum ]
then
echo "Invalid awnser"
exit 1
fi
export instance=($(sed -n "${awnser}p" /opt/lqfb/instances))
# copy config file
conf_name=$(echo ${instance[0]} | sed "s/\//-/g" | cut -c2-)
cp -v ${instance[2]}/config/piraten-$conf_name.lua $frontend_path/config/
#/etc/init.d/crond stop
/etc/init.d/lighttpd stop
#/root/scripts/dump_db
### API Port
if [ ${#instance[@]} -gt 6 ]
then
api_port=${instance[6]#*=}
else
api_port=$(($(cat /opt/lqfb/api_port) + 1))
echo $api_port > /opt/lqfb/api_port
fi
#create new lighttpd conf
cat > /etc/lighttpd/lqfb/$conf_name.conf << EOF
alias.url += (
"${instance[0]}/fastpath/" => "$frontend_path/fastpath/$conf_name/",
"${instance[0]}/static/" => "$frontend_path/static/",
"${instance[0]}/" => "$webmcp_path/cgi-bin/",
)
\$HTTP["url"] =~ "^${instance[0]}/" {
setenv.add-environment += (
"LANG" => "en_US.UTF-8",
"WEBMCP_CONFIG_NAME" => "piraten-$conf_name" ,
"WEBMCP_APP_BASEPATH" => "$frontend_path",
)
}
\$HTTP["url"] =~ "^${instance[0]}/fastpath/" {
cgi.assign = ( "" => "" )
# setenv.add-response-header = ( "Cache-Control" => "private; max-age=86400" )
expire.url = ( "" => "access plus 24 hours" )
}
\$HTTP["host"] == "api-$conf_name.lqpp.de"{
proxy.server = ( "" =>
(
( "host" => "127.0.0.1", "port" => $api_port )
)
)
}
EOF
#copy database
#su www-data --preserve-environment -c 'echo CREATE DATABASE ${db_name}_11 WITH TEMPLATE $db_name | psql $db_name'
#update database
export db_name=${instance[1]}
cd $update_base
for update in "${core_updates[@]}" ; do
export update
echo running $update confirm
su www-data --preserve-environment -c 'cat $update | psql $db_name'
done
#Avatars
cd $frontend_path/fastpath
mkdir -p $conf_name
cd $conf_name
escaped=$(echo $frontend_path | sed 's/\//\\\//g')
cat ../getpic.c | sed "s/dbname=liquid_feedback/dbname=$db_name/" | sed "s/\/opt\/liquid_feedback_testing\/app\/static\/avatar.jpg/${escaped}\/static\/avatar.jpg/" | cat > getpic.c
make -f ../Makefile
#update instances file
cd /opt/lqfb
cp instances tmp
grep -vP "$db_name\t" tmp > instances
rm tmp
export url=${instance[0]}
echo -e $url'\t'$db_name'\t'$frontend_path'\t'$core_path'\t'$webmcp_path'\t'${instance[5]}'\tapiport='$api_port >> /opt/lqfb/instances
#/etc/init.d/crond start
#/etc/init.d/lighttpd start