File cyr_systemd_helper of Package cyrus-imapd
107
1
#!/bin/sh
2
# get_config [config default]
3
# extracts config option from config file
4
5
if [ ! -c /dev/null ]; then
6
exit 1
7
fi
8
9
if [ ! -r /dev/null -o ! -w /dev/null ]; then
10
exit 1
11
fi
12
13
if [ "$(stat -c %a /dev/null)" != "666" ]; then
14
chmod 666 /dev/null
15
fi
16
17
if [ -f /etc/sysconfig/cyrus-imapd ]; then
18
. /etc/sysconfig/cyrus-imapd
19
elif [ -f /etc/default/cyrus-imapd ]; then
20
. /etc/default/cyrus-imapd
21
fi
22
23
if [ ! -z "${QUICK}" ]; then
24
if [ ${QUICK} -ne 0 ]; then
25
exit 0
26
fi
27
fi
28
29
get_config() {
30
if conf=$(grep "^$1" /etc/imapd.conf); then
31
echo $conf | cut -d: -f2
32
else
33
echo $2
34
fi
35
}
36
37
CONFIGDIRECTORY=$(get_config configdirectory /var/lib/imap)
38
if [ ! -d ${CONFIGDIRECTORY} ]; then
39
mkdir -p ${CONFIGDIRECTORY}
40
chmod 700 ${CONFIGDIRECTORY}
41
chown cyrus:mail ${CONFIGDIRECTORY}
42
fi
43
44
RETVAL=0
45
46
# Sometimes, there is no path
47
runuser=$(which runuser 2>/dev/null)
48
49
if [ -z "${runuser}" ]; then
50
runuser=/usr/sbin/runuser
51
fi
52
53
reload() {
54
if [ ! -f /var/run/cyrus-master.pid ]; then
55
exit 255
56
fi
57
58
if [ -z "$(pidof cyrus-master)" ]; then
59
exit 1
60
fi
61
62
if [ "$(cat /var/run/cyrus-master.pid)" != "$(pidof cyrus-master)" ]; then
63
exit 1
64
fi
65
66
kill -HUP $(cat /var/run/cyrus-master.pid)
67
}
68
69
start() {
70
cd $CONFIGDIRECTORY
71
$runuser - cyrus -s /bin/bash -c '/usr/lib/cyrus-imapd/mkimap' >/dev/null 2>&1 < /dev/null
72
73
mkdir -p ${CONFIGDIRECTORY}/rpm
74
chown cyrus:mail ${CONFIGDIRECTORY}/rpm
75
76
$runuser - cyrus -s /bin/sh -c "umask 166 ; /usr/lib/cyrus-imapd/cvt_cyrusdb_all import > ${CONFIGDIRECTORY}/rpm/db_import.log 2>&1" < /dev/null
77
RETVAL=$?
78
}
79
80
stop() {
81
cd $CONFIGDIRECTORY
82
mkdir -p ${CONFIGDIRECTORY}/rpm
83
chown cyrus:mail ${CONFIGDIRECTORY}/rpm
84
85
$runuser - cyrus -s /bin/sh -c "umask 166 ; /usr/lib/cyrus-imapd/cvt_cyrusdb_all export > ${CONFIGDIRECTORY}/rpm/db_export.log 2>&1" < /dev/null
86
RETVAL=$?
87
}
88
89
case "$1" in
90
reload)
91
reload
92
;;
93
94
start)
95
start
96
;;
97
98
stop)
99
stop
100
;;
101
102
*)
103
;;
104
esac
105
106
exit $RETVAL
107