home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / etc / rc.splash < prev    next >
Text File  |  2006-11-29  |  3KB  |  108 lines

  1. # /etc/rc.splash
  2. # vim: syntax=sh
  3. #
  4. # Initialize bootsplash progressbar variables and
  5. # define the bootsplash boot script functions.
  6. #
  7.  
  8. SPLASHCFG=
  9.    SPLASH=yes
  10. SPLASHNUM=0
  11.     THEME=
  12. export SPLASHCFG SPLASH
  13.  
  14. test -s /etc/sysconfig/bootsplash && . /etc/sysconfig/bootsplash
  15. test -x /sbin/splash -a -w /proc/splash            || SPLASH=no
  16. test -n "$THEME" -a -d "/etc/bootsplash/themes/$THEME"    || SPLASH=no
  17. case "$PREVLEVEL-$RUNLEVEL" in
  18.     [2-5]-[2-5]) SPLASH=no
  19. esac
  20.  
  21. if test "$SPLASH" = yes -a -r /proc/splash ; then
  22.     read -t 1 splashstatus < /proc/splash
  23.     splashstatus="${splashstatus#*:}"
  24.     splashstatus="${splashstatus## }"
  25.     test "$splashstatus" = on    || SPLASH=no
  26.     unset splashstatus
  27. else
  28.     SPLASH=no
  29. fi
  30.  
  31. if test "$SPLASH" = yes -a -x /sbin/fbresolution ; then
  32.     fbresolution="$(/sbin/fbresolution 2> /dev/null)"
  33.     SPLASHCFG="/etc/bootsplash/themes/$THEME/config/bootsplash-${fbresolution}.cfg"
  34.     unset fbresolution
  35.     test -f "$SPLASHCFG"    || SPLASH=no
  36. fi
  37.  
  38. if test "$SPLASH" = "yes" ; then
  39.     if test "$1" = "B" ; then
  40.     SPLASHSTART=100
  41.     SPLASHEND=20000
  42.     for i in /etc/init.d/boot.d/S[0-9][0-9]*; do
  43.         test -x "$i" || continue
  44.         : $((SPLASHNUM++))
  45.     done
  46.     unset i
  47.     else
  48.     SPLASHSTART=0
  49.     SPLASHEND=65535
  50.     case "$PREVLEVEL-$RUNLEVEL" in
  51.         N-[3-5]) SPLASHSTART=20000 ;;
  52.     esac
  53.     for i in /etc/init.d/rc${RUNLEVEL}.d/S[0-9][0-9]*; do
  54.         test -x "$i" || continue
  55.         : $((SPLASHNUM++))
  56.     done
  57.     for i in /etc/init.d/rc${PREVLEVEL}.d/K[0-9][0-9]*; do
  58.         test -x "$i" || continue
  59.         : $((SPLASHNUM++))
  60.     done
  61.     unset i
  62.     fi
  63.     function splashtrigger  ()
  64.     {
  65.     case "$1" in
  66.     rlreached*) SPLASHSTART=$SPLASHEND
  67.     esac
  68.     case "$RUNLEVEL" in
  69.     [06]) /sbin/splash -S -p $SPLASHSTART -t "$1" "$SPLASHCFG" ;;
  70.     *)    /sbin/splash    -p $SPLASHSTART -t "$1" "$SPLASHCFG"
  71.     esac
  72.     }
  73.     function splashprogress ()
  74.     {
  75.     local SPLASHDIFF
  76.     test "$SPLASHNUM" -ge 1 || SPLASHNUM=1
  77.     SPLASHDIFF=$(((SPLASHEND - SPLASHSTART)/SPLASHNUM))
  78.     /sbin/splash -p "$SPLASHSTART:$SPLASHDIFF" -t "$1" "$SPLASHCFG"
  79.     SPLASHSTART=$((SPLASHSTART+SPLASHDIFF))
  80.     : $((SPLASHNUM--))
  81.     }
  82.     function splashparallel ()
  83.     {
  84.     local SPLASHDIFF
  85.     local SPLASHOLDSTART=$SPLASHSTART
  86.     for i; do
  87.         test "$SPLASHNUM" -ge 1 || SPLASHNUM=1
  88.         SPLASHDIFF=$(((SPLASHEND-SPLASHSTART)/SPLASHNUM))
  89.         SPLASHSTART=$((SPLASHSTART+SPLASHDIFF))
  90.         : $((SPLASHNUM--))
  91.     done
  92.     SPLASHDIFF=$((SPLASHSTART-SPLASHOLDSTART))
  93.     echo "-S $SPLASHOLDSTART:$SPLASHDIFF"
  94.     }
  95.     function splashmake ()
  96.     {
  97.     local SPLASHDIFF=$((SPLASHEND-SPLASHSTART))
  98.     echo "-S $SPLASHSTART:$SPLASHDIFF"
  99.     SPLASHSTART=$SPLASHEND
  100.     SPLASHNUM=0
  101.     }
  102. else
  103.     function splashtrigger  () { :; }
  104.     function splashprogress () { :; }
  105.     function splashparallel () { echo ""; }
  106.     function splashmake     () { echo ""; }
  107. fi
  108.