Page 4 of 8 FirstFirst ... 23456 ... LastLast
Results 31 to 40 of 75

Thread: HOWTO: Spice up your boot text [font resolution and color]

  1. #31
    Join Date
    Jul 2005
    Beans
    125

    Re: HOWTO: Spice up your boot text [font resolution and color]

    Nice howto, sir.
    I realize I'm bumping, buuuuuuuuuuut figured I'd show mine off (the relevant function)..

    Code:
    log_end_msg (){
        [ -z "$1" ] && return 1
        TPUT=/usr/bin/tput
        EXPR=/usr/bin/expr
        if [ -x $TPUT ] && [ -x $EXPR ] && $TPUT hpa 60 >/dev/null 2>&1; then
            COLS=`$TPUT cols`
            if [ -n "$COLS" ]; then
                COL=`$EXPR $COLS - 7`
            else
                COL=73
            fi
            UP=`$TPUT cuu1`
            END=`$TPUT hpa $COL`
            START=`$TPUT hpa 0`
            RED=`$TPUT setaf 1`
    	WHITE=`($TPUT bold; $TPUT setaf 7)`
    	CYAN=`$TPUT setaf 6`
    	PRPL=`$TPUT setaf 5`
    	GREEN=`$TPUT setaf 2`
            NORMAL=`$TPUT op`
            if [ $1 -eq 0 ]; then
                echo "$WHITE$UP$NORMAL$END${CYAN}[${GREEN} ok ${CYAN}]$NORMAL"
            else
                echo -e "$WHITE$UP$NORMAL$START $RED*$NORMAL$END${PRPL}[${RED}fail${PRPL}]$NORMAL"
            fi
        else
    	if [ $1 -eq 0 ]; then
                echo "   ...done."
            else
                echo "   ...fail!"
            fi
        fi
       return $1
    }
    Probably too much zest, but hey, it looks nice to me.
    Thanks again, sir.

  2. #32
    Join Date
    Jun 2005
    Location
    Chicago Suburb
    Beans
    69
    Distro
    Ubuntu 6.10 Edgy

    Re: HOWTO: Spice up your boot text [font resolution and color]

    duminas has a nice idea.... post your init-functions file if you've got a unique one! All of the boot and shutdown text customization (aside from the resolution) occurs in the /lib/lsb/init-functions file. It's actually pretty flexible. Just recently, I changed all of the text to blue, yellow and green.. and moved the "ok" or "fail" to the left side of the screen rather than the right. See the screenshot (crummy quality, phone shot, but you get the point!). Personally I really like the yellow text, it livens things up a lot, and produces some nice variation on the screen. It's much easier to read.

    I cleaned up the init-functions file a bit, and moved all the color options to the top of the file, making them accessible throughout. It could probably be cleaned up more, but it was enough for me.

    I've attached two versions of my init-functions. Just BACKUP your original init-functions and replace them with mine below. Simply rename it back to your original to go back to normal.

    init-functions-front.txt (remove the .txt): Produces output in screenshot. Results "success, fail" are shown on the left side of the screen before each item. Colorful and easy to read.

    init-functions-yellow.txt (remove the .txt): Standard output with colors. Results "[ ok ], [ fail ]" are on the right side, like the default. This just adds color.
    Attached Images Attached Images
    Attached Files Attached Files

  3. #33
    Join Date
    Apr 2005
    Location
    Not-So-Sunny Hawaii
    Beans
    Hidden!

    Re: HOWTO: Spice up your boot text [font resolution and color]

    bah... broken in breezy
    So... a 1337 java programmer walks into a bar...

  4. #34
    Join Date
    Jun 2005
    Location
    Chicago Suburb
    Beans
    69
    Distro
    Ubuntu 6.10 Edgy

    Re: HOWTO: Spice up your boot text [font resolution and color]

    Quote Originally Posted by benplaut
    bah... broken in breezy
    Ahh bummer. What happens in breezy, nothing? Seems strange, I wouldn't think init-functions be so different that it would break. What did you try to do?

  5. #35
    Join Date
    Aug 2005
    Beans
    Hidden!

    Re: HOWTO: Spice up your boot text [font resolution and color]

    Is there info on how to do this with other colors since your guide only explains how to do it with green. when i try to change green to another color is not seen as that color it stays with green when using this guide..
    Advantages and Disadvantages of 64bit.(Plus install Guides)

    ‘In search of some small measure of peace, that we all seek, and few of us ever find.’

  6. #36
    Join Date
    Jul 2005
    Location
    on the edge of reality...
    Beans
    Hidden!

    Re: HOWTO: Spice up your boot text [font resolution and color]

    Quote Originally Posted by dudinatrix
    Ahh bummer. What happens in breezy, nothing? Seems strange, I wouldn't think init-functions be so different that it would break.
    The init functions in Breazy have been rewriten for use with usplash. Here is the init-functions in Breezy

    Code:
    # /lib/lsb/init-functions for Debian -*- shell-script -*-
    #
    #Copyright (c) 2002-03 Chris Lawrence
    #All rights reserved.
    #
    #Redistribution and use in source and binary forms, with or without
    #modification, are permitted provided that the following conditions
    #are met:
    #1. Redistributions of source code must retain the above copyright
    #   notice, this list of conditions and the following disclaimer.
    #2. Redistributions in binary form must reproduce the above copyright
    #   notice, this list of conditions and the following disclaimer in the
    #   documentation and/or other materials provided with the distribution.
    #3. Neither the name of the author nor the names of other contributors
    #   may be used to endorse or promote products derived from this software
    #   without specific prior written permission.
    #
    #THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    #ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    #IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    #ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    #FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    #DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    #OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    #HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    #LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    #OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    #SUCH DAMAGE.
    
    start_daemon () {
        local force nice pidfile exec
        set -- `POSIXLY_CORRECT=1 getopt "fn:p:" $*`
        force=0
        nice=0
        pidfile=/dev/null
    
        for i in $*; do
            case $i in
                -f)  force=1; shift;;
                -n)  nice=$2; shift 2;;
                -p)  pidfile=$2; shift 2;;
                --)  shift; break;;
            esac
        done
    
        exec=$1; shift
    
        if [ $force = 1 ]; then
            /sbin/start-stop-daemon --start --nicelevel $nice --quiet --startas $exec --pidfile /dev/null --oknodo -- $*
        elif [ $pidfile ]; then
            /sbin/start-stop-daemon --start --nicelevel $nice --quiet --exec $exec --oknodo --pidfile "$pidfile" -- $*
        else
            /sbin/start-stop-daemon --start --nicelevel $nice --quiet --exec $exec --oknodo -- $*
        fi
    }
    
    pidofproc () {
        local pidfile line i pids= status
        set -- `POSIXLY_CORRECT=1 getopt "p:" $*`
        pidfile=
    
        for i in $*; do
            case $i in
                -p)  pidfile=$2; shift 2;;
                --)  shift; break;;
            esac
        done
    
        if [ -z "$pidfile" ]; then
            pidfile=/var/run/$(basename "$1").pid
        fi
    
        if [ -f "$pidfile" ]; then
            read -d "" line < "$pidfile"
            for i in $line; do
                if [ -z "$(echo $p | sed 's/[0-9]//g')" -a -d "/proc/$i" ]; then 
                    pids="$i $pids"
                fi
            done
            if [ -n "$pids" ]; then
                echo "$pids"
                return 0
            else
                return 2 # program is dead and /var/run pid file exists
            fi
        elif [ -x /bin/pidof ]; then
            /bin/pidof -o %PPID $1
            status="$?"
            [ "$status" = 1 ] && return 3 # program is not running
            return 0
        else
            return 4 # program or service is unknown
        fi
    }
    
    # start-stop-daemon uses the same algorithm as "pidofproc" above.
    killproc () {
        local pidfile sig status
        set -- `POSIXLY_CORRECT=1 getopt "p:" $*`
        pidfile=
    
        for i in $*; do
            case $i in
                -p)  pidfile=$2; shift 2;;
                --)  shift; break;;
            esac
        done
    
        if [ ! $pidfile ]; then
            pidfile=/var/run/$(basename "$1").pid
        fi
    
        if [ $2 ]; then
            sig=$(echo $2 | sed -e 's/^-\(.*\)/\1/')
            sig=$(echo $sig | sed -e 's/^SIG\(.*\)/\1/')
            /sbin/start-stop-daemon --stop --pidfile "$pidfile" --signal $sig --quiet
            status="$?"
            [ "$status" = 1 ] && return 3 # program is not running
            return 0
        else
            /sbin/start-stop-daemon --stop --pidfile "$pidfile" --retry 5 --quiet --oknodo
        fi
    }
    
    log_success_msg () {
        if type usplash_write >/dev/null 2>&1; then
            usplash_write "STATUS $*" || true
        fi
        echo " * $@"
    }
    
    log_failure_msg () {
        if type usplash_write >/dev/null 2>&1; then
            usplash_write "STATUS $*" || true
        fi
    
        TPUT=/usr/bin/tput
        if [ -x $TPUT ] && $TPUT hpa 60 >/dev/null 2>&1; then
            RED=`$TPUT setaf 1`
            NORMAL=`$TPUT op`
            echo " $RED*$NORMAL $@"
        else
            echo " * $@"
        fi
    }
    
    log_warning_msg () {
        if type usplash_write >/dev/null 2>&1; then
            usplash_write "STATUS $*" || true
        fi
        TPUT=/usr/bin/tput
        if [ -x $TPUT ] && $TPUT hpa 60 >/dev/null 2>&1; then
            YELLOW=`$TPUT setaf 3`
            NORMAL=`$TPUT op`
            echo " $YELLOW*$NORMAL $@"
        else
            echo " * $@"
        fi
    }
    
    #
    # NON-LSB HELPER FUNCTIONS
    #
    # int get_lsb_header_val (char *scriptpathname, char *key)
    get_lsb_header_val () {
            if [ ! -f "$1" ] || [ -z "$2" ]; then
                    return 1
            fi
            LSB_S="### BEGIN INIT INFO"
            LSB_E="### END INIT INFO"
            sed -n "/$LSB_S/,/$LSB_E/ s/# $2: \(.*\)/\1/p" $1
    }
    
    # int log_begin_message (char *message)
    log_begin_msg () {
            if [ -z "$1" ]; then
                    return 1
            fi
    
            if type usplash_write >/dev/null 2>&1; then
    	    usplash_write "TEXT $*" || true
            fi
    
    	# Only do the fancy stuff if we have an appropriate terminal
    	# and if /usr is already mounted
    	TPUT=/usr/bin/tput
    	EXPR=/usr/bin/expr
    	if [ -x $TPUT ] && [ -x $EXPR ] && \
    		$TPUT xenl >/dev/null 2>&1 && \
    		$TPUT hpa 60 >/dev/null 2>&1; then
    	    COLS=`$TPUT cols`
    	    if [ -n "$COLS" ]; then
    		 COL=`$EXPR $COLS - 7`
    	    else
    		 COL=73
    	    fi
    	    # We leave the cursor `hanging' about-to-wrap
    	    # (see terminfo(5) xenl, which is approximately right).
    	    # That way if the script prints anything then we will
    	    # be on the next line and not overwrite part of the message.
    
    	    # Previous versions of this code attempted to colour-code
    	    # the asterisk but this can't be done reliably because
    	    # in practice init scripts sometimes print messages even
    	    # when they succeed and we won't be able to reliably know
    	    # where the colourful asterisk ought to go.
    	    
    	    printf " * $*       "
    	    # Enough trailing spaces for ` [fail]' to fit in; if the
    	    # message is too long it wraps here rather than later,
    	    # which is what we want.
    	    $TPUT hpa `$EXPR $COLS - 1`
    	    printf ' '
            else
    	    echo " * $*"
    	    COL=''
            fi
    }
    
    # int log_end_message (int exitstatus)
    log_end_msg () {
    
        # If no arguments were passed, return
        [ -z "$1" ] && return 1
    
        if type usplash_write >/dev/null 2>&1; then
            if [ $1 -eq 0 ]; then
                usplash_write "SUCCESS ok" || true
            else
                usplash_write "FAILURE failed" || true
            fi
        fi
    
        if [ "$COL" ]; then
            printf "\r"
    	$TPUT hpa $COL
    	if [ $1 -eq 0 ]; then
    	    echo "[ ok ]"
    	else
    	    printf '['
    	    $TPUT setaf 1  # red
    	    printf fail
    	    $TPUT op  # normal
    	    echo ']'
            fi
        else
    	if [ $1 -eq 0 ]; then
                echo "   ...done."
            else
                echo "   ...fail!"
            fi
        fi
        return $1
    }

    -- UDSF | Tango Desktop Project --

    -- openSUSE 11.3 / Ubuntu 10.04 --

  7. #37
    Join Date
    Sep 2005
    Beans
    2

    Re: HOWTO: Spice up your boot text [font resolution and color]

    In brezzy change then line:
    echo "[ ok ]"
    to:
    printf '[ '
    $TPUT setaf 2 # green
    printf ok
    $TPUT op # normal
    echo ' ]'
    Last edited by bens; October 8th, 2005 at 06:13 PM.

  8. #38
    Join Date
    Jun 2005
    Beans
    Hidden!

    Re: HOWTO: Spice up your boot text [font resolution and color]

    Quote Originally Posted by bens
    In brezzy change then line:.....

    Thank you very much. I´ve searched for this patch since I first booted breezy.

  9. #39
    Join Date
    Jan 2006
    Location
    Slovenia
    Beans
    6
    Distro
    Kubuntu Breezy 5.10

    Re: HOWTO: Spice up your boot text [font resolution and color]

    Quote Originally Posted by bens
    In brezzy change then line:
    echo "[ ok ]"
    to:
    printf '[ '
    $TPUT setaf 2 # green
    printf ok
    $TPUT op # normal
    echo ' ]'
    Where again do I change this? (yes I know in file /lib/lsb/....)
    I need to know what line do I have to change....

  10. #40
    Join Date
    May 2005
    Beans
    79

    Re: HOWTO: Spice up your boot text [font resolution and color]

    Sorry to ressurect this thread, but I was wondering if it is possible to apply this change to Dapper?

    the log_end_message is what is called by the init scripts, and it looks like this:

    Code:
    log_end_msg () {
        # If no arguments were passed, return
        [ -z "$1" ] && return 1
    
        # Only do the fancy stuff if we have an appropriate terminal
        # and if /usr is already mounted
        if log_use_fancy_output; then
            RED=`$TPUT setaf 1`
            NORMAL=`$TPUT op`
            if [ $1 -eq 0 ]; then
                echo "."
            else
                /bin/echo -e " ${RED}failed!${NORMAL}"
            fi
        else
    	if [ $1 -eq 0 ]; then
                echo "."
            else
                echo " failed!"
            fi
        fi
        return $1
    }
    Unfortunately, changing this function makes no change to the screen output!! And besides, the function surely would display "failed!" not "fail" as I actually get from my test script...

    Code:
    #!/bin/bash
    
    . /lib/lsb/init-functions
    
    log_begin_msg "Testing with 0 as my value..."
    log_end_msg 0
    
    log_begin_msg "Testing with 1 as my value..."
    log_end_msg 1
    And nowhere can I find the OK message that is shown when the command completes successfully..!

Page 4 of 8 FirstFirst ... 23456 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •