fix ticket searches, RT#13852
[freeside.git] / debian / dbconfig-common.install
1 #!/bin/sh
2
3 . /etc/dbconfig-common/freeside.conf
4
5 DB_USER=$dbc_dbuser
6 DB_PASSWORD=$dbc_dbpass
7
8 # -- can't find a better place to hook this in.  dammit.
9
10 [ "$dbc_dbtype" = "pgsql" ] && DB_TYPE=Pg
11 [ "$dbc_dbtype" = "mysql" ] && DB_TYPE=mysql
12 #XXX ask dbc about a remote database etc.
13 DATASOURCE=DBI:${DB_TYPE}:dbname=${dbc_dbname}
14     
15 #debian/rules
16 FREESIDE_CONF=/etc/freeside
17 FREESIDE_CACHE=/var/cache/freeside
18 #XXX huh?
19 FREESIDE_EXPORT=/var/spool/freeside
20 DEFAULT_CONF=/usr/share/freeside/default_conf
21     
22 #XXX this rather seriously needs proper debian-style config file handling.
23     
24 #shamelessly lifted from Makefile create-config target
25 [ -e ${FREESIDE_CONF} ] || install -d -o freeside ${FREESIDE_CONF}
26     
27 touch ${FREESIDE_CONF}/secrets
28 chown freeside ${FREESIDE_CONF}/secrets
29 chmod 600 ${FREESIDE_CONF}/secrets
30     
31 [ -s ${FREESIDE_CONF}/secrets ] || echo -e "${DATASOURCE}\n${DB_USER}\n${DB_PASSWORD}" >${FREESIDE_CONF}/secrets
32 chmod 600 ${FREESIDE_CONF}/secrets
33 chown freeside ${FREESIDE_CONF}/secrets
34     
35 #XXX yuck!  this too!
36 [ -e /var/opt/freeside/rt/etc/RT_Config.pm.dbc ] || cp /var/opt/freeside/rt/etc/RT_Config.pm.dbc.generic /var/opt/freeside/rt/etc/RT_Config.pm.dbc
37 perl -pi.generic -e "s/^\\s*Set\\s*\\(\s*\\\$DatabaseType.*\$/Set(\\\$DatabaseType, '$DB_TYPE');/" /var/opt/freeside/rt/etc/RT_Config.pm.dbc
38 mv /var/opt/freeside/rt/etc/RT_Config.pm.dbc /var/opt/freeside/rt/etc/RT_Config.pm
39 perl -pi -e "\
40   s'_DBC_DBUSER_'${dbc_dbuser}'g;\
41   s'_DBC_DBPASS_'${dbc_dbpass}'g;\
42   s'_DBC_DBNAME_'${dbc_dbname}'g;\
43 " /var/opt/freeside/rt/etc/RT_Config.pm
44  
45 #dunno how to hook this in where i need it...
46 #dbc_generate_include="template:/var/opt/freeside/rt/etc/RT_Config.pm"
47 #dbc_generate_include_args="-o template_infile=/var/opt/freeside/rt/etc/RT_Config.pm.dbc"
48             
49 install -o freeside -d "${FREESIDE_CACHE}/counters.${DATASOURCE}"
50 install -o freeside -d "${FREESIDE_CACHE}/cache.${DATASOURCE}"
51 install -o freeside -d "${FREESIDE_EXPORT}/export.${DATASOURCE}"
52             
53 if [ ! -d "${FREESIDE_CONF}/conf.${DATASOURCE}" ] ; then #don't clobber conf
54 install -o freeside -d "${FREESIDE_CONF}/conf.${DATASOURCE}"
55 #cp conf/[a-z]* "${FREESIDE_CONF}/conf.${DATASOURCE}"
56 cp -i `ls -d ${DEFAULT_CONF}/[a-z]* | grep -v CVS` "${FREESIDE_CONF}/conf.${DATASOURCE}" #-i just in case
57 chown -R freeside "${FREESIDE_CONF}/conf.${DATASOURCE}"
58 fi
59         
60 # -- back to your regularly schedule program... go ahead, create the db
61
62 DOMAIN=`dnsdomainname`
63 if [ "$DOMAIN" = "localdomain" ]; then #freeside needs a valid domain
64   DOMAIN='example.com'
65 fi
66
67 # XXX this should probably be handled by the _install_...
68 # dpkg-statoverride or something
69 chown freeside /etc/freeside
70
71 su freeside -c "/usr/bin/freeside-setup -d $DOMAIN"
72 su freeside -c '/usr/bin/freeside-adduser -g 1 fs_queue'
73 su freeside -c '/usr/bin/freeside-adduser -g 1 fs_daily'
74 su freeside -c '/usr/bin/freeside-adduser -g 1 fs_selfservice'
75 su freeside -c '/usr/bin/freeside-adduser -g 1 fs_upgrade'
76
77 #RT paths are bunk for deb proper
78
79 chown freeside /var/opt/freeside/rt/etc/RT_Config.pm
80
81 su freeside -c "/var/opt/freeside/rt/sbin/rt-setup-database --dba '$DB_USER' --dba-password '$DB_PASSWORD' --action schema"
82
83 su freeside -c '/var/opt/freeside/rt/sbin/rt-setup-database --action insert_initial'
84
85 su freeside -c '/var/opt/freeside/rt/sbin/rt-setup-database --action insert --datafile /var/opt/freeside/rt/etc/initialdata'
86
87 #XXX this totally doesn't belong here, but what the hey
88 chown -R freeside /var/cache/freeside/masondata
89
90 exit 0