| #!/sbin/runscript |
| # Copyright 1999-2008 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| opts="${opts} reload fetch flush" |
| |
| depend() { |
| use net |
| } |
| |
| processOpts() { |
| local retVal=1 |
| |
| DNETPATH="/opt/distributed.net" |
| DNETBIN="${DNETPATH}/dnetc" |
| |
| STARTOPTS="--start --chuid dnetc:dnetc --quiet \ |
| --exec ${DNETBIN}" |
| |
| DNETOPTS="-quiet" |
| |
| if [ -e /etc/dnetc.ini ] ; then |
| retVal=0 |
| DNETOPTS="${DNETOPTS} -ini /etc/dnetc.ini" |
| elif [ -e ${DNETPATH}/dnetc.ini ]; then |
| retVal=0 |
| DNETOPTS="${DNETOPTS} -ini ${DNETPATH}/dnetc.ini" |
| elif [ ! -z ${EMAIL} ]; then |
| retVal=0 |
| fi |
| |
| # override ini settings with values in /etc/conf.d/dnetc |
| |
| DNETOPTS="${DNETOPTS} ${EMAIL:+-e ${EMAIL}}" |
| if [ ! -z ${BUFFER_BASE_DIR} ] ; then |
| local buff_in="${BUFFER_BASE_DIR:+${BUFFER_BASE_DIR}/}buff-in" |
| local buff_out="${BUFFER_BASE_DIR:+${BUFFER_BASE_DIR}/}buff-out" |
| DNETOPTS="${DNETOPTS} -inbase ${buff_in}" |
| DNETOPTS="${DNETOPTS} -outbase ${buff_out}" |
| fi |
| DNETOPTS="${DNETOPTS} ${KEYSERVER_ADDRESS:+-a ${KEYSERVER_ADDRESS}}" |
| |
| # fair group cpu scheduler |
| uidpath="/sys/kernel/uids/`id -u dnetc`" |
| [ -d $uidpath ] && echo 2 >$uidpath/cpu_share |
| unset uidpath |
| |
| if [ ${retVal} -ne 0 ] ; then |
| eerror "Need some sort of configuration. Check /etc/conf.d/dnetc." |
| fi |
| |
| return ${retVal} |
| } |
| |
| start() { |
| processOpts || return 1 |
| ebegin "Starting distributed.net client" |
| start-stop-daemon ${STARTOPTS} -- ${DNETOPTS} |
| eend ${?} |
| } |
| |
| stop() { |
| processOpts || return 1 |
| ebegin "Stopping distributed.net client" |
| start-stop-daemon --stop --quiet --exec ${DNETBIN} -- |
| eend ${?} |
| } |
| |
| reload() { |
| processOpts || return 1 |
| ebegin "Reloading distributed.net client" |
| start-stop-daemon --stop --quiet --signal HUP --exec ${DNETBIN} |
| eend ${?} |
| } |
| |
| fetch() { |
| processOpts || return 1 |
| ebegin "Fetching distributed.net client buffers" |
| ${DNETBIN} ${DNETOPTS} -fetch |
| eend ${?} |
| } |
| |
| flush() { |
| processOpts || return 1 |
| ebegin "Flushing distributed.net client buffers" |
| ${DNETBIN} ${DNETOPTS} -flush |
| eend ${?} |
| } |