b663f63a5f
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
142 lines
3.7 KiB
Bash
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
|