Update of /cvs/debian-boot/base-config/lib
In directory gluck:/tmp/cvs-serv6908/lib

Added Files:
        prep-menu show-menu 
Log Message:
more 2.0 changes


--- NEW FILE: prep-menu ---
#!/bin/sh -e
# This helper program is run by base-config before displaying the main
# menu. It populates the base-config/main-menu's choices list with the menu
# choices, and generates a menu-mapping file that can be used to translate
# back from the menu items to the programs to run.

. /usr/share/debconf/confmodule

# Get an ordered list of the menu items.
get_menu_items () {
        (
                for i in $(find menu -type f -perm -700 -printf '%f\n '); do
                        if [ "$NEW" ] || grep -q '^Only-New: false' menu/$i.mnu; then
                                echo $(grep ^Order: menu/$i.mnu | cut -f 2 -d ' ') $i
                        fi
                done
        ) | sort -n | cut -d ' ' -f 2
}

CHOICES=""
for item in $(get_menu_items); do
        db_metaget base-config/menu/$item description || RET="$item"
        echo "$RET:$item" >> menu-mapping
        if [ -z "$CHOICES" ]; then
                CHOICES="$RET"
                # Mark first menu item as default to get things going.
                db_set base-config/main-menu "$RET"
        else
                CHOICES="$CHOICES, $RET"
        fi
done

db_subst base-config/main-menu CHOICES "$CHOICES"

--- NEW FILE: show-menu ---
#!/bin/sh -e
# This helper program displays the base-config menu. If the selected item
# can also run under debconf, it runs it directly (this is fastest).
# Otherwise, it echos it to file descriptor 5, for base-config to read and
# run it outside of debconf. To indicate that the main menu should no
# longer be shown, it will exit without echoing anything to that file
# descriptor.

. /usr/share/debconf/confmodule

ADVANCE=$1
NEW=$2

db_capb backup

while :; do
        # Title might get reset, so set it each time.
        db_settitle base-config/title
        
        if [ "$ADVANCE" = 1 ]; then
                # Advance default to the next menu item.
                db_get base-config/main-menu
                NEXT=$(grep -A 1 "$RET:" menu-mapping | cut -d : -f 1 | tail -n 1)
                if [ ! -z "$NEXT" ]; then
                        db_set base-config/main-menu $NEXT
                fi
        fi
        ADVANCE=1
        
        db_fset base-config/main-menu seen false
        if db_input medium base-config/main-menu; then
                # back all the way out is the same as exiting base-config
                # however, note that I only go if the question will be
                # shown. Else debconf's auto-backup code could emulate a
                # backup based on a prior backup within a menu item.
                db_go || exit 30
        fi
        
        db_get base-config/main-menu
        menu_item=$(grep "^$RET:" menu-mapping | cut -d : -f 2)
        
        if grep -q '^Debconf: true' menu/$menu_item.mnu; then
                # Run menu item inside debconf.
                if ! ./menu/$menu_item $NEW 5>/dev/null; then
                        ADVANCE=0
                        # Drop priority to make sure the menu is displayed
                        # since a menu item is failing.
                        db_get debconf/priority
                        if [ "$RET" = high ] || [ "$RET" = critical ]; then
                                db_set debconf/priority medium
                        fi
                else
                        if grep -q 'Exit-Menu: true' menu/$menu_item.mnu; then
                                # This menu item finished the install, so
                                # exit the menu.
                                exit 0
                        fi
                fi
        else
                # The menu item cannot run inside debconf, so pass it back
                # to base-config on the special communication fd.
                echo $menu_item >&5
                exit 0
        fi
done


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to