openpkg/rc.openpkg

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
parent 427
71503088f51b
permissions
-rw-r--r--

Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.

michael@13 1 #!@l_prefix@/bin/openpkg rc
michael@13 2 ##
michael@428 3 ## rc.openpkg -- Run-Commands
michael@428 4 ## Copyright (c) 2000-2012 OpenPKG GmbH <http://openpkg.com/>
michael@428 5 ##
michael@428 6 ## This software is property of the OpenPKG GmbH, DE MUC HRB 160208.
michael@428 7 ## All rights reserved. Licenses which grant limited permission to use,
michael@428 8 ## copy, modify and distribute this software are available from the
michael@428 9 ## OpenPKG GmbH.
michael@428 10 ##
michael@428 11 ## THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
michael@428 12 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@428 13 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@428 14 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@428 15 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@428 16 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@428 17 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@428 18 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@428 19 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@428 20 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@428 21 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@428 22 ## SUCH DAMAGE.
michael@13 23 ##
michael@13 24
michael@13 25 %config
michael@13 26 openpkg_rc_def="yes"
michael@13 27 openpkg_rc_all="$openpkg_rc_def"
michael@13 28 openpkg_enable="$openpkg_rc_def"
michael@13 29 openpkg_envprio="high"
michael@13 30 openpkg_reghour="3"
michael@13 31 openpkg_regrand="1"
michael@13 32
michael@13 33 %status -o
michael@13 34 openpkg_usable="unknown"
michael@13 35 openpkg_active="unknown"
michael@13 36 echo "openpkg_enable=\"$openpkg_enable\""
michael@13 37 echo "openpkg_usable=\"$openpkg_usable\""
michael@13 38 echo "openpkg_active=\"$openpkg_active\""
michael@13 39
michael@13 40 %info -o
michael@13 41 @l_prefix@/bin/openpkg uuid info
michael@13 42
michael@13 43 %start -p0
michael@13 44 rcService openpkg enable yes || exit 0
michael@428 45
michael@13 46 # update UUID information (in background to not slow down boot sequences)
michael@13 47 (nohup @l_prefix@/bin/openpkg uuid update </dev/null >/dev/null 2>&1 &) >/dev/null 2>&1
michael@13 48
michael@13 49 %hourly -u @l_musr@
michael@13 50 rcService openpkg enable yes || exit 0
michael@428 51
michael@13 52 # automatic (re-)registration
michael@13 53 reregister=0
michael@428 54
michael@13 55 # re-register if previously registered
michael@13 56 @l_prefix@/bin/openpkg register --printstatus >/dev/null 2>&1 && reregister=1
michael@428 57
michael@13 58 # re-register if "openpkg release" configured to pull packages directly from openpkg.(org|com|net)
michael@13 59 [ $reregister -eq 0 ] && @l_prefix@/bin/openpkg release --fmt='%u' \
michael@13 60 | egrep '^[^:]*://(([^:]*:)?([^@]*@)?)?([^/]*\.)?openpkg\.(com|org|net)/' >/dev/null && reregister=1
michael@428 61
michael@13 62 # perform (re-)registration
michael@13 63 if [ $reregister -eq 1 ]; then
michael@13 64 [ $openpkg_reghour -lt 00 -o $openpkg_reghour -gt 23 ] && openpkg_reghour="3"
michael@13 65 now=`date '+%H'`
michael@13 66 [ $openpkg_reghour -eq $now ] || exit 0
michael@13 67 [ $openpkg_regrand -lt 01 -o $openpkg_regrand -gt 04 ] && openpkg_regrand="1"
michael@13 68 rnd=`expr $RANDOM \* 3600 \* $openpkg_regrand / 32768`
michael@13 69 (nohup @l_prefix@/lib/openpkg/bash -c "sleep $rnd; @l_prefix@/bin/openpkg register" </dev/null >/dev/null 2>&1 &) >/dev/null 2>&1
michael@13 70 fi
michael@13 71
michael@13 72 %daily -p0
michael@13 73 rcService openpkg enable yes || exit 0
michael@428 74
michael@13 75 # update UUID information
michael@13 76 @l_prefix@/bin/openpkg uuid update >/dev/null 2>&1 || true
michael@13 77
michael@13 78 %env -p0
michael@13 79 rcService openpkg enable yes || exit 0
michael@13 80
michael@13 81 # determine append (low prio) or prepend (high prio) mode
michael@13 82 opt_prepend=""
michael@13 83 if [ ".$openpkg_envprio" = ".high" ]; then
michael@13 84 opt_prepend="-p"
michael@13 85 fi
michael@13 86
michael@13 87 # make sure the software package executables are found
michael@13 88 export PATH
michael@13 89 rcPath -a -e PATH \
michael@13 90 /bin /sbin /usr/bin /usr/sbin
michael@13 91 rcPath -a ${opt_prepend} PATH \
michael@13 92 @l_prefix@/bin @l_prefix@/sbin \
michael@13 93 @l_prefix@/local/bin @l_prefix@/local/sbin
michael@13 94
michael@13 95 # make sure the software package manual pages are found
michael@13 96 export MANPATH
michael@13 97 rcPath -a -e MANPATH \
michael@13 98 /usr/man /usr/share/man
michael@13 99 rcPath -a ${opt_prepend} MANPATH \
michael@13 100 @l_prefix@/man @l_prefix@/local/man
michael@13 101
michael@13 102 # make sure the software package info pages are found
michael@13 103 export INFOPATH
michael@13 104 rcPath -a -e INFOPATH \
michael@13 105 /usr/info /usr/share/info
michael@13 106 rcPath -a ${opt_prepend} INFOPATH \
michael@13 107 @l_prefix@/info @l_prefix@/local/info
michael@13 108
michael@13 109 # make sure the software package libraries are found
michael@13 110 export LD_LIBRARY_PATH
michael@13 111 rcPath -a -e LD_LIBRARY_PATH \
michael@13 112 /lib /usr/lib
michael@13 113 rcPath -a ${opt_prepend} LD_LIBRARY_PATH \
michael@13 114 @l_prefix@/lib @l_prefix@/local/lib
michael@13 115
michael@13 116 # cleanup
michael@13 117 unset opt_prepend
michael@13 118

mercurial