freebsd-ports/astro/setiathome/pkg-install
David W. Chapman Jr. b663f63a5f Update Maintainer's Email
Add pkg-message
Add rc.setiathome.conf
Make messages go through syslog
PACKAGE_BUILDING replaced by BATCH
PKGMESSAGE and PKGDEINSTALL added

PR:		29943
Submitted by:	maintainer
2001-08-24 13:39:27 +00:00

142 lines
3.7 KiB
Bash

#!/bin/sh
#
# $FreeBSD$
#
# Set up the work area and run SETI@home to login or register.
#
[ $# != 2 ] && exit 1
[ -z "${PKG_PREFIX}" ] && exit 1
[ -n "${BATCH}" ] && exit 0
PKG_NAME=$1
PKG_ACTION=$2
# override these variables in ${PREFIX}/etc/rc.setiathome.conf
seti_wrkdir=/var/db/setiathome # working directory
seti_user=nobody # user id to run under
seti_maxprocs=$(sysctl -n hw.ncpu) # max. number of processes to start
rcconf_dir=${PKG_PREFIX}/etc
rcconf_file=rc.setiathome.conf
rcconf_path=${rcconf_dir}/${rcconf_file}
if [ -f ${rcconf_path} ]; then
. ${rcconf_path}
fi
rc_dir=${PKG_PREFIX}/etc/rc.d
rc_file=setiathome.sh
rc_path=${rc_dir}/${rc_file}
ncpu=$(sysctl -n hw.ncpu)
case "$PKG_ACTION" in
POST-INSTALL)
echo "**** SETI@home requires a working directory for temporary files and a"
echo " brief registration process."
echo
echo " Would you like to set up a working directory in ${seti_wrkdir},"
if [ ${seti_maxprocs} -gt 1 ]; then
echo " register with SETI@home, and let me arrange for ${ncpu} setiathome"
if [ ${ncpu} -eq ${seti_maxprocs} ]; then
echo " processes (one for each of your ${ncpu} CPUs) to be started"
echo -n " automatically as user \`${seti_user}'? [Y/n] "
else
echo " processes (as configured) to be started automatically as user"
echo -n " \`${seti_user}'? [Y/n] "
fi
else
echo " register with SETI@home, and let me arrange for setiathome to be"
echo -n " started automatically as user \`${seti_user}'? [Y/n] "
fi
read a
echo
if [ "X$a" = "XN" -o "X$a" = "Xn" ]; then
echo "**** Please set up the working directory yourself. You may use"
echo " ${rc_path} register"
echo " to do so. See setiathome(1) for details."
exit 0
fi
${rc_path} register
if [ ! -f ${seti_wrkdir}/user_info.sah ]; then
echo "unable to start setiathome: it seems registration or login failed."
echo "See setiathome(1) for details."
exit 0
fi
${rc_path} start > /dev/null
echo
echo "**** Congratulations! Your system now participates in the search for"
echo " extra-terrestrial intelligence. Be sure to visit the home page"
echo " at http://setiathome.ssl.berkeley.edu/"
echo " See setiathome(1) for further details."
;;
DEINSTALL)
if [ ! -d ${seti_wrkdir} ]; then
exit 0
fi
${rc_path} stop > /dev/null
echo "**** SETI@home working directory and temporary files have to be"
echo " removed to complete the deinstallation process. Of course,"
echo " you may prefer to keep them for futher researchs? Would you"
echo " like to remove it as well as all temporary files it may"
echo -n " contains? [y/N] "
read a
echo
if [ "X$a" != "XY" -a "X$a" != "Xy" ]; then
echo "**** SETI@home working directory and temporary files left untouched."
exit 0
fi
for i in ${seti_wrkdir}/.??* ${seti_wrkdir}/*; do
case "${i}" in
"${seti_wrkdir}/.??*"|"${seti_wrkdir}/*")
continue
;;
*/.tkseti*|*.sah)
[ -f ${i} ] || continue
rm -f ${i}
;;
*)
[ -d ${i} ] || continue
for j in ${seti_wrkdir}/*; do
case "${j}" in
"${seti_wrkdir}/*")
continue
;;
*/.tkseti*|*.sah)
[ -f ${j} ] || continue
rm -f ${j}
;;
esac
done
rmdir ${i}
;;
esac
done
rmdir ${seti_wrkdir}
if [ -d ${seti_wrkdir} ]; then
echo "**** SETI@home working directory can't be removed since it contains"
echo " non SETI@home files or directories. You have to remove it"
echo " manually. You can use"
echo " rm -rf ${seti_wrkdir}"
echo " to do so, but think about it twince before."
else
echo "**** SETI@home working directory and temporary files removed."
fi
;;
PRE-INSTALL|POST-DEINSTALL)
;;
*)
echo "usage: $0 <PKG_NAME> {PRE-INSTALL|POST-INSTALL|DEINSTALL|POST-DEINSTALL}" >&2
exit 1
;;
esac
exit 0