#!/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%%-[0-9._]*} PKG_ACTION=$2 # override these variables in ${PREFIX}/etc/rc.setiathome.conf seti_wrkdir=/var/db/${PKG_NAME} # 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.${PKG_NAME}.conf rcconf_path=${rcconf_dir}/${rcconf_file} if [ -f ${rcconf_path} ]; then . ${rcconf_path} fi rc_dir=${PKG_PREFIX}/etc/rc.d rc_file=${PKG_NAME}.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 {PRE-INSTALL|POST-INSTALL|DEINSTALL|POST-DEINSTALL}" >&2 exit 1 ;; esac exit 0