diff -r 333964c621f1 -r cb59d6afeb61 openpkg/rc.openpkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/openpkg/rc.openpkg Tue Jan 06 23:40:39 2009 +0100 @@ -0,0 +1,96 @@ +#!@l_prefix@/bin/openpkg rc +## +## rc.openpkg -- Run-Commands +## + +%config + openpkg_rc_def="yes" + openpkg_rc_all="$openpkg_rc_def" + openpkg_enable="$openpkg_rc_def" + openpkg_envprio="high" + openpkg_reghour="3" + openpkg_regrand="1" + +%status -o + openpkg_usable="unknown" + openpkg_active="unknown" + echo "openpkg_enable=\"$openpkg_enable\"" + echo "openpkg_usable=\"$openpkg_usable\"" + echo "openpkg_active=\"$openpkg_active\"" + +%info -o + @l_prefix@/bin/openpkg uuid info + +%start -p0 + rcService openpkg enable yes || exit 0 + # update UUID information (in background to not slow down boot sequences) + (nohup @l_prefix@/bin/openpkg uuid update /dev/null 2>&1 &) >/dev/null 2>&1 + +%hourly -u @l_musr@ + rcService openpkg enable yes || exit 0 + # automatic (re-)registration + reregister=0 + # re-register if previously registered + @l_prefix@/bin/openpkg register --printstatus >/dev/null 2>&1 && reregister=1 + # re-register if "openpkg" executable from community series + [ $reregister -eq 0 ] && @l_prefix@/bin/openpkg --license 2>/dev/null \ + | sed -e 'q' | egrep '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*-C' >/dev/null && reregister=1 + # re-register if "openpkg release" configured to pull packages directly from openpkg.(org|com|net) + [ $reregister -eq 0 ] && @l_prefix@/bin/openpkg release --fmt='%u' \ + | egrep '^[^:]*://(([^:]*:)?([^@]*@)?)?([^/]*\.)?openpkg\.(com|org|net)/' >/dev/null && reregister=1 + # perform (re-)registration + if [ $reregister -eq 1 ]; then + [ $openpkg_reghour -lt 00 -o $openpkg_reghour -gt 23 ] && openpkg_reghour="3" + now=`date '+%H'` + [ $openpkg_reghour -eq $now ] || exit 0 + [ $openpkg_regrand -lt 01 -o $openpkg_regrand -gt 04 ] && openpkg_regrand="1" + rnd=`expr $RANDOM \* 3600 \* $openpkg_regrand / 32768` + (nohup @l_prefix@/lib/openpkg/bash -c "sleep $rnd; @l_prefix@/bin/openpkg register" /dev/null 2>&1 &) >/dev/null 2>&1 + fi + +%daily -p0 + rcService openpkg enable yes || exit 0 + # update UUID information + @l_prefix@/bin/openpkg uuid update >/dev/null 2>&1 || true + +%env -p0 + rcService openpkg enable yes || exit 0 + + # determine append (low prio) or prepend (high prio) mode + opt_prepend="" + if [ ".$openpkg_envprio" = ".high" ]; then + opt_prepend="-p" + fi + + # make sure the software package executables are found + export PATH + rcPath -a -e PATH \ + /bin /sbin /usr/bin /usr/sbin + rcPath -a ${opt_prepend} PATH \ + @l_prefix@/bin @l_prefix@/sbin \ + @l_prefix@/local/bin @l_prefix@/local/sbin + + # make sure the software package manual pages are found + export MANPATH + rcPath -a -e MANPATH \ + /usr/man /usr/share/man + rcPath -a ${opt_prepend} MANPATH \ + @l_prefix@/man @l_prefix@/local/man + + # make sure the software package info pages are found + export INFOPATH + rcPath -a -e INFOPATH \ + /usr/info /usr/share/info + rcPath -a ${opt_prepend} INFOPATH \ + @l_prefix@/info @l_prefix@/local/info + + # make sure the software package libraries are found + export LD_LIBRARY_PATH + rcPath -a -e LD_LIBRARY_PATH \ + /lib /usr/lib + rcPath -a ${opt_prepend} LD_LIBRARY_PATH \ + @l_prefix@/lib @l_prefix@/local/lib + + # cleanup + unset opt_prepend +