Moving to GitHub.
[platal.git] / upgrade / inc / pervasive.sh
CommitLineData
0337d704 1#!/bin/bash
2
31b7f90d 3MYSQL='mysql -u admin --default-character-set=utf8 '
0337d704 4
5
6set -e
7
a4067b06 8if [ "$UID" != 0 ] && [ "$1" != "-u" ] ; then
161daeb9 9 echo "has to be run as root"
a4067b06 10 exit 1
161daeb9 11fi
0337d704 12
f3a7456d
VZ
13if [[ -n "${DBPREFIX}" ]]; then
14 echo "Using non-default database ${DBPREFIX}x4dat."
15fi
d0293d9b
FB
16if [[ -z "${DATABASE}" ]]; then
17 DATABASE="${DBPREFIX}x4dat"
9d5e1087 18fi
f3a7456d 19
100e66fc
FB
20function die() {
21 echo $1
22 exit 1
23}
24
96e2233d 25function confirm() {
f6d26730
RB
26 if [[ -n "${NO_CONFIRM}" ]]; then
27 echo "$1"
28 echo "* press ^C to cancel, waiting 5 seconds..."
29 sleep 5
30 else
31 echo "$1"
32 echo "* press ^D to start import (^C to cancel)"
33 cat
34 fi
96e2233d
FB
35}
36
37function mysql_pipe() {
aa1f260a
FB
38 sed -e "s/#\([0-9a-z]*\)#/${DBPREFIX}\1/g" | $MYSQL $DATABASE
39}
40
f6d26730
RB
41function mysql_exec() {
42 echo -n " * executing $1 "
43 if [[ -z "${DRY_RUN}" ]]; then
4c6d3012 44 (echo "$1" | mysql_pipe) || die "ERROR"
f6d26730
RB
45 fi
46 echo "OK"
47}
48
284f03bf
FB
49function mysql_pipe_nodb() {
50 sed -e "s/#\([0-9a-z]*\)#/${DBPREFIX}\1/g" | $MYSQL
51}
52
53function mysql_exec_nodb() {
54 echo -n " * executing $1 "
55 if [[ -z "${DRY_RUN}" ]]; then
4c6d3012 56 (echo "$1" | mysql_pipe_nodb) || die "ERROR"
284f03bf
FB
57 fi
58 echo "OK"
59}
60
96e2233d 61function mysql_run() {
f6d26730
RB
62 echo -n " * running $1 "
63 if [[ -z "${DRY_RUN}" ]]; then
4c6d3012 64 (cat "$1" | mysql_pipe) || die "ERROR"
f6d26730 65 fi
96e2233d
FB
66 echo "OK"
67}
68
cc9dc1dd
FB
69function create_db() {
70 echo "* create database "
71 mysql_exec_nodb "CREATE DATABASE IF NOT EXISTS $DATABASE;"
72 mysql_exec_nodb "GRANT ALTER, CREATE, CREATE TEMPORARY TABLES, DELETE, DROP, EXECUTE, INDEX, INSERT, LOCK TABLES, SELECT, UPDATE ON $DATABASE.* TO 'web'@'localhost';"
73 mysql_exec_nodb "FLUSH PRIVILEGES;"
74 echo "OK"
75}
76
77function copy_db() {
78 if [[ -n "$SOURCE_DATABASE" ]]; then
79 confirm "* copying database from $SOURCE_DATABASE to $DATABASE"
80 create_db
81 echo -n "* build database from dump "
82 ( mysqldump --add-drop-table -Q $SOURCE_DATABASE | $MYSQL $DATABASE ) \
83 || die "ERROR"
84 echo "OK"
85 fi
86}
87
96e2233d
FB
88function mysql_run_directory() {
89 for sql in $1/*.sql ; do
90 mysql_run $sql
91 done
92}
93
94function script_run() {
f6d26730
RB
95 echo -n " * running $1 "
96 if [[ -z "${DRY_RUN}" ]]; then
97 $1 || die "ERROR"
98 fi
96e2233d
FB
99 echo "OK"
100}
101
0337d704 102function mailman_stop() {
f6d26730
RB
103 echo -n " * stops mailman"
104 if [[ -z "${DRY_RUN}" ]]; then
105 /etc/init.d/mailman stop &>/dev/null
106 fi
0337d704 107 echo .
108}
109
110function mailman_templates() {
f6d26730
RB
111 echo -n " * copies new mails templates"
112 if [[ -z "${DRY_RUN}" ]]; then
113 mkdir -p /etc/mailman/xorg
114 cp -f ../../modules/lists/mail_templates/*.txt /etc/mailman/xorg
115 fi
0337d704 116 echo .
117}
118
119function mailman_start() {
f6d26730
RB
120 echo -n " * starts mailman"
121 if [[ -z "${DRY_RUN}" ]]; then
122 /etc/init.d/mailman start &>/dev/null
123 fi
0337d704 124 echo .
125}