blob: 06c2187aa44e2c8eb27338ce6bf08060f970e56f (
plain) (
blame)
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
|
#! /bin/sh
ask() {
local question default answer
question=$1
default=$2
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
read -p "${question} [${default}]? " answer
fi
if [ x${answer} = x ]; then
answer=${default}
fi
echo ${answer}
}
yesno() {
local dflt question answer
question=$1
dflt=$2
while :; do
answer=$(ask "${question}" "${dflt}")
case "${answer}" in
[Yy]*) return 0;;
[Nn]*) return 1;;
esac
echo "Please answer yes or no."
done
}
make_group() {
local g
g=$1
if pw group show "${g}" >/dev/null 2>&1; then
echo "You already have a group \"${g}\", so I will use it."
else
echo "You need a group \"${g}\"."
if which -s pw && yesno "Would you like me to create it" y; then
pw groupadd ${g} || exit
echo "Done."
else
echo "Please create it, and try again."
if ! /usr/sbin/pw user show ${u} >/dev/null 2>/dev/null; then
echo "While you're at it, please create a user \"${u}\" too,"
echo "with a default group of \"${g}\"."
fi
exit 1
fi
fi
}
init_plugins() {
if [ -f ${PKG_PREFIX}/etc/munin/VERSION.node ]; then
prevver=$(cat ${PKG_PREFIX}/etc/munin/VERSION.node)
fi
if [ -n "$prevver" ]; then
echo -n "Initializing new plugins.."
${PKG_PREFIX}/sbin/munin-node-configure --shell --newer "${prevver%-*}" | sh -x
else
echo -n "Initializing plugins.."
${PKG_PREFIX}/sbin/munin-node-configure --shell | sh -x
fi
echo "done."
}
create_crontab_entries() {
local sched prog
sched=$1
prog=$2
if grep -q "^[^#]*$prog" /etc/crontab; then
echo "It looks like your crontab is already set up, so I'll use that."
else
echo "It looks like your perl suffers from unsafe signals."
if yesno "Would you like me to set up your root crontab to restart munin-node" y; then
cat <<EOT >>/etc/crontab
$sched root $prog
EOT
else
echo "You may suffer from munin-node crashing after log rotation."
echo "If you still want to restart munin-node, use $prog."
fi
fi
}
newsyslog() {
if yesno "Would you like me to set up log rotation" y; then
if grep -q /var/log/munin-node.log /etc/newsyslog.conf; then
:
else
cat >> /etc/newsyslog.conf <<EOT
/var/log/munin-node.log 644 7 * @T00 Z /var/run/munin/munin-node.pid
EOT
fi
if [ -f ${PKG_PREFIX}/bin/munin-node-revive ]; then
create_crontab_entries '4 * * * *' ${PKG_PREFIX}/bin/munin-node-revive
fi
else
echo "/var/log/munin-node.log will grow without bounds."
fi
}
########################################################################
case $2 in
PRE-INSTALL)
make_group munin
;;
POST-INSTALL)
if [ -z "${PACKAGE_BUILDING}" ]; then
init_plugins
${PKG_PREFIX}/etc/rc.d/munin-node.sh start
newsyslog
fi
;;
esac
|