summaryrefslogtreecommitdiff
path: root/devel/rt-mysql/files/rtconfig
blob: 26c955aa08f51a969bdcee397d237380ab981b1d (plain)
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#!/bin/sh
#
#	$NetBSD: rtconfig,v 1.1.1.1 2002/09/19 21:40:45 atatat Exp $
#

nonemessage="Enter \"none\" for an empty reponse or hit enter for the default."
query()
{
	_var="$1"
	_default="$2"
	_value=""

	[ -n "$nonemessage" ] && echo "$nonemessage"
	nonemessage=""
	while [ -z "$_value" ]; do
		echo -n "Enter $_var [$_default]: "
		read _value
		if [ -z "$_value" ]; then
			_value="$_default"
			break
		elif [ "$_value" = "none" ]; then
			_value=""
			break
		fi
	done
	
	eval $_var="$_value"
}

PERL='@PREFIX@/bin/perl'
RT_PATH='@RT_PATH@'
RT_ETC_PATH="${RT_PATH}/etc"
RT_LOG_PATH='@RT_LOG_PATH@'
RT_DATA_PATH='@RT_DATA_PATH@'
DB_TYPE='@RT_DB_TYPE@'
DB_HOME='@RT_DB_HOME@'
query DB_HOST '@RT_DB_HOST@'
DB_PORT='@RT_DB_PORT@'
DB_RT_USER='@RT_DB_USER@'
DB_RT_PASS='@RT_DB_PASS@'
DB_DATABASE='@RT_DB_DATABASE@'
query DB_DBA '@RT_DB_DBA@'
query DB_DBA_PASSWORD '@RT_DB_DBA_PASSWORD@'

if [ ! -f "${RT_DATA_PATH}/installed" ]; then
	upgrading=false
else
	ODB_TYPE=`cat "${RT_DATA_PATH}/installed"`
	if [ "$DB_TYPE" = "$ODB_TYPE" ]; then
		upgrading=true
	else
		cat <<EOF
WARNING: You cannot upgrade an RT installation from $ODB_TYPE to
WARNING: $DB_TYPE simply by installing a new pkg.  Your data will
WARNING: need to be manually dumped and reloading from the database.
EOF
		exit 1
	fi
fi

query WEB_USER '@RT_WEB_USER@'
query WEB_GROUP '@RT_WEB_GROUP@'

MASON_DATA_PATH='@RT_DATA_PATH@'
MASON_SESSION_PATH='@RT_SESSION_PATH@'

# install -> initialize.${DB_TYPE} -> createdb
createdb()
{
	$upgrading && return 0

        ${PERL} ${RT_PATH}/etc/initdb "${DB_TYPE}" "${DB_HOME}" \
		"${DB_HOST}" "${DB_PORT}" \
		"${DB_DBA}" "${DB_DATABASE}" \
		create
}

# install -> initialize.${DB_TYPE} -> acls
acls()
{
	$upgrading && return 0

	echo "Note: make sure this is the same as listed in your config.pm"
	query DB_RT_PASS "${DB_RT_PASS}"
	sed < "${RT_ETC_PATH}/acl.${DB_TYPE}" > "${RT_ETC_PATH}/acl" \
		-e "s/identified by [^ ]*$/identified by ${DB_RT_PASS}/" \
		-e "s/with password '[^']*'/with password '${DB_RT_PASS}'/" \
		-e "s/IDENTIFIED BY '[^']*'/IDENTIFIED BY '${DB_RT_PASS}'/"
	${RT_ETC_PATH}/initacls.${DB_TYPE} "${DB_HOME}" \
		"${DB_HOST}" "${DB_PORT}" "${DB_DBA}" \
		"${DB_DBA_PASSWORD}" "${DB_DATABASE}" \
		"${RT_ETC_PATH}/acl"
	rm "${RT_ETC_PATH}/acl"
}

# install -> initialize.mysql -> initdb.rtuser
initdb_rtuser()
{
	$upgrading && return 0

	${PERL} ${RT_ETC_PATH}/initdb "${DB_TYPE}" "${DB_HOME}" \
		"${DB_HOST}" "${DB_PORT}" \
		"${DB_RT_USER}" "${DB_DATABASE}" \
		insert
}

# install -> initialize.Pg -> initdb.dba
initdb_dba()
{
	$upgrading && return 0

	${PERL} ${RT_ETC_PATH}/initdb "${DB_TYPE}" "${DB_HOME}" \
		"${DB_HOST}" "${DB_PORT}" \
		"${DB_DBA}" "${DB_DATABASE}" \
		insert
}

# install -> upgrade -> upgrade-noclobber -> nondestruct -> fixperms
fixperms()
{
	chmod 770		${RT_LOG_PATH} \
				${MASON_DATA_PATH} \
				${MASON_SESSION_PATH}
        chown -R ${WEB_USER}	${RT_LOG_PATH} \
				${MASON_DATA_PATH} \
				${MASON_SESSION_PATH}
        chgrp -R ${WEB_GROUP}	${RT_LOG_PATH} \
				${MASON_DATA_PATH} \
				${MASON_SESSION_PATH}
}

# install -> insert
insert()
{
	$upgrading && return 0

	${PERL} ${RT_ETC_PATH}/insertdata
}

# rt upgrade "instructions"
rtupgrade()
{
	$upgrading || return 0

	cat <<EOF

Congratulations. RT has been upgraded. You should now check-over
${RT_ETC_PATH}/config.pm for any necessary site customization.
EOF
}

# 
rtinstall()
{
	$upgrading && return 0

	cat <<EOF

Congratulations. RT has been installed.  From here on in, you
should refer to the users guide (aka README.rt).
EOF

	echo "$DB_TYPE" > "${RT_DATA_PATH}/installed"
}

cd "${RT_PATH}"

case "${DB_TYPE}" in
mysql)
	createdb					# not on upgrade
	acls						# not on upgrade
	initdb_rtuser					# not on upgrade
	fixperms
	insert						# not on upgrade
	;;

Pg)
	createdb					# not on upgrade
	initdb_dba					# not on upgrade
	acls						# not on upgrade
	fixperms
	insert						# not on upgrade
	;;

*)
	echo "what database type is ${DB_TYPE}?" >&2
	exit 1
	;;
esac

rtupgrade
rtinstall