#! /bin/sh base=${PREFIX}/etc/cvsup prefixes=${base}/prefixes chmods_done=" " ask() { local question default answer question=$1 default=$2 if [ -z "${PACKAGE_BUILDING}" ]; 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 } install_links() { local link dir subdir path while [ $# -ge 3 ]; do link=$1 dir=$2 subdir=$3 echo " Linking ${link} -> ${dir}" ln -sf ${dir} ${prefixes}/${link} || exit if [ "x${dir}" != "xSKIP" -a "x${dir}" != "x.." ]; then if [ "x${subdir}" = "x." ]; then path=${dir} else path=${dir}/${subdir} fi ( cd ${prefixes} || exit if [ "x${subdir}" != "x." -a -h ${path} ]; then cat </dev/null 2>&1; then echo -n " Making the ${path} tree world-readable ..." ( chdir ${prefixes} || exit chmod -R a+rX ${path} || exit ) || exit echo " done." chmods_done="${chmods_done}${path} " fi fi shift 3 done } case $2 in POST-INSTALL) . ${base}/config.sh || exit if which -s pw && which -s lockf; then : else cat </dev/null; then echo "You already have a group \"${group}\", so I will use it." else echo "You need a group \"${group}\"." if which -s pw && yesno "Would you like me to create it" y; then pw groupadd ${group} || exit echo "Done." else echo "Please create it, and try again." if ! grep -q "^${user}:" /etc/passwd; then echo "While you're at it, please create a user \"${user}\" too," echo "with a default group of \"${group}\"." fi exit 1 fi fi if pw user show "${user}" 2>/dev/null; then echo "You already have a user \"${user}\", so I will use it." else echo "You need a user \"${user}\"." if which -s pw && yesno "Would you like me to create it" y; then pw useradd ${user} -g ${group} -h - -d /nonexistent \ -s /nonexistent -c "CVSup Daemon" || exit echo "Done." else echo "Please create it, and try again." exit 1 fi fi echo "Fixing ownerships and modes in \"${base}\"." chown -R root.${group} ${base} chmod -R g=u,o=u-w ${base} echo "Setting up links and directories for distributions." test -d ${prefixes} || mkdir ${prefixes} || exit install_links ${distribs} echo "" if grep -q "^[^#]*${facility}.*/var/log/cvsupd.log" /etc/syslog.conf; then echo -n "It looks like you already have some logging set up, so I " echo "will use it." else if yesno "Would you like me to set up the syslog logging" y; then echo "Setting up server logging in \"/etc/syslog.conf\"." cat <>/etc/syslog.conf !cvsupd ${facility}.info /var/log/cvsupd.log EOF if [ ! -f /var/log/cvsupd.log ]; then echo "Creating \"/var/log/cvsupd.log\"." cp /dev/null /var/log/cvsupd.log fi if [ -f /var/run/syslog.pid ]; then echo "Giving syslogd a kick in the pants." kill -HUP $(cat /var/run/syslog.pid) fi echo "Adding cvsupd log entry to \"/etc/newsyslog.conf\"." cat <>/etc/newsyslog.conf /var/log/cvsupd.log 664 7 * 24 Z EOF echo "Done." else cat <>/etc/crontab ${m} ${hstr} * * * root ${base}/update.sh EOF cat <