freebsd-ports/sysutils/munin-master/pkg-install
Ben Woods b044e71547 sysutils/munin-*: Use .conf suffix for /usr/local/etc/newsyslog.conf.d/
- Rename the files installed to /usr/local/etc/newsyslog.conf.d/ to end
  with a '.conf' suffix.
- Add pkg-install script to automatically move any copies of the old
  newsyslog file to the new location if it was modified from the default
  or delete the old file if it is has not been modified.
- Add a note to UPDATING and pkg-message to warn users of this, in case
  they are using provisioning/configuration management tools which need
  to be modified.

Recent changes to /etc/newsyslog.conf (r340318) will only include files
from the /usr/local/etc/newsyslog.conf.d/ directory which end with
'.conf' and do not beginning with a '.' character.

Reviewed by:	mandree (D17088)
Approved by:	mat (maintainer)
Differential Revision:	https://reviews.freebsd.org/D17089
2018-11-24 02:50:06 +00:00

100 lines
2.4 KiB
Bash

#! /bin/sh
# ex:sw=4 sts=4
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
}
create_crontab_entries() {
local b e
b=$1
e=$2
if crontab -u munin -l > /dev/null 2>&1
then
if ! crontab -u munin -l | grep -q MANUAL_MUNIN_CRONTAB
then
TMPFILE=`mktemp -t munin` || exit 1
cat > $TMPFILE
crontab -u munin -l | sed -e "/^$b$/,/^$e$/d" | \
cat - $TMPFILE | crontab -u munin -
rm $TMPFILE
fi
else
crontab -u munin -
fi
}
move_www_dir() {
if [ -d ${PKG_PREFIX}/www/data/munin -a ! -d ${PKG_PREFIX}/www/munin ]
then
echo Migrating ${PKG_PREFIX}/www/data/munin to ${PKG_PREFIX}/www/munin
mv ${PKG_PREFIX}/www/data/munin ${PKG_PREFIX}/www/munin
fi
}
move_newsyslog_conf() {
oldfile=${PKG_PREFIX}/etc/newsyslog.conf.d/munin-master
newfile=${PKG_PREFIX}/etc/newsyslog.conf.d/munin-master.conf
samplefile=${PKG_PREFIX}/etc/munin/munin-master.newsyslog
if [ -f ${oldfile} ]; then
echo "Configuration file found in old location: ${oldfile}"
if cmp -s ${samplefile} ${newfile} > /dev/null; then
echo "Configuration file in new location has not been modified from the default: ${newfile}"
echo " => Moving old configuration file to new location"
mv -f ${oldfile} ${newfile}
else
echo "Configuration file in new location has been modified from the default: ${newfile}"
echo " => Deleting old configuration file"
rm ${oldfile}
fi
fi
}
########################################################################
case $2 in
PRE-INSTALL)
move_www_dir # at some point in the installation, the www dir is created
;;
POST-INSTALL)
if [ -z "${PACKAGE_BUILDING}" ]
then
create_crontab_entries '#BEGIN_MUNIN_MAIN' '#END_MUNIN_MAIN' <<EOT
#BEGIN_MUNIN_MAIN
MAILTO=root
*/5 * * * * ${PKG_PREFIX}/bin/munin-cron
#END_MUNIN_MAIN
EOT
fi
move_newsyslog_conf
;;
esac