summaryrefslogblamecommitdiff
path: root/net/bld/pkg-install
blob: fbd5350d4787fe121ca686431bdcabcf93eb9c79 (plain) (tree)
1
2
3
4
5
6
7
8
9


                           

        


                   
                        

         



                                  






















                                                   




                                          






















                                                                   
                                                





                                   



                                              




                       

                           


       
                                                               


                   


                                                                       
    

                                                         
    
                                                        

   



                                 
 



                                              
 


                                                      
   
            
  


















                                                                              
#!/bin/sh

if [ $2 != "POST-INSTALL" ]
    then
    exit
fi

varrun=/var/run/bld
logfile=/var/log/bld.log
user=bld
group=bld
newsyslog_conf=/etc/newsyslog.conf
syslog_conf=/etc/syslog.conf
syslog_pid=/var/run/syslog.pid
nonexistent=/nonexistent

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
}

make_account() {
    local u g gcos homeopt home

    u=$1
    g=$2
    gcos=$3
    homeopt=${4:+"-d $4"}

    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}\"."
	pw groupadd ${g} || exit
	echo "Done."
    fi
    
    if pw user show "${u}" >/dev/null 2>&1; then
	echo "You already have a user \"${u}\", so I will use it."
    else
	echo "You need a user \"${u}\"."
	pw useradd ${u} -g ${g} -h - ${homeopt} \
	    -s $nonexistent -c "${gcos}" || exit
	echo "Done."
    fi

    if [ x"$homeopt" = x ]; then
	eval home=~${u}
	if [ ! -d "${home}" ]; then
	    mkdir -p ${home}/.cvsup || exit
	    touch ${home}/.cvsup/auth || exit
	    chown -R ${u}:${g} ${home} || exit
	    chmod -R go= ${home} || exit
	fi
    fi
}

if [ ! -d "${varrun}" ]
    then
    mkdir ${varrun} || exit
fi

echo ""
make_account ${user} ${group} "Blacklist Daemon" "$nonexistent"
chmod 700 ${varrun}
chown bld ${varrun}

if grep -q "^[^#]*${facility}.*$logfile" $syslog_conf; then
    echo -n "It looks like you already have some logging set up, so I "
    echo "will use it."
else
    echo "Setting up server logging in \"$syslog_conf\"."
    cat <<EOF >>$syslog_conf
!bld
*.*						$logfile
EOF

if [ ! -f $logfile ]; then
    echo "Creating \"$logfile\"."
    cp /dev/null $logfile
fi

if [ -f $syslog_pid ]; then
    echo "Giving syslogd a kick in the pants."
    kill -HUP $(cat $syslog_pid)
fi

echo "Adding bld log entry to \"$newsyslog_conf\"."
cat <<EOF >>$newsyslog_conf
$logfile			664  7    *    24    Z
EOF
echo "Done."
fi

# Compatibility from v0.2.4 port
for i in bld_acl.conf bld_whitelist.conf
do
  if [ -f ${PKG_PREFIX}/etc/$i ]
      then
      if [ -f ${PKG_PREFIX}/etc/bld/$i ]
	  then
	  echo "WARNING: You have a $i configuration file in two directories:"
	  echo "${PKG_PREFIX}/etc and ${PKG_PREFIX}/etc/bld"
	  echo "You must use ${PREFIX}/etc/bld/$i"
      else
	  echo "You seem to have a $i configuration file in ${PKG_PREFIX}/etc"
	  echo "Copying it to ${PKG_PREFIX}/etc/bld"
	  cp ${PKG_PREFIX}/etc/$i ${PKG_PREFIX}/etc/bld
	  echo "You should clean the old ${PKG_PREFIX}/etc/$i"
      fi
  fi
done