case "$MODE" in
    commandline)
        add_option "debootstrap-keyring" "`eval_gettext "use the specified keyring for debootstrap gpg verification"`" "advanced" "true"
        ;;
esac

if [ "$BOOTSTRAP" = "debootstrap" ]; then
case "$MODE" in
    configure)
        if [ -n "$option_debootstrap_keyring_value" ]; then
            DEBOOTSTRAP_KEYRING="$option_debootstrap_keyring_value"
        fi
        ;;    
    install)
        if [ -n "$EXCLUDE" ] ; then
            DEBOOTSTRAPOPTS="$DEBOOTSTRAPOPTS --exclude=$EXCLUDE"
        fi
        if [ -n "$INCLUDE" ] ; then
            DEBOOTSTRAPOPTS="$DEBOOTSTRAPOPTS --include=$INCLUDE"
        fi
        if [ -n "$DEBOOTSTRAP_KEYRING" ]; then
            DEBOOTSTRAPOPTS="$DEBOOTSTRAPOPTS --keyring=$DEBOOTSTRAP_KEYRING"
        fi
        if [ -x "$CROSS_ARCH_EMULATOR" ]; then
            DEBOOTSTRAPOPTS="$DEBOOTSTRAPOPTS --foreign"
        fi
        if [ ! -f "/usr/lib/debootstrap/scripts/$DIST" ] && [ ! -f "/usr/share/debootstrap/scripts/$DIST" ]; then
            echo "ERROR: invalid distribution: $DIST"
            echo "you may need to specify the distribution with the --dist argument:"
            echo "  $0 --dist etch"
            exit 1
        fi
        # Install base packages
        if [ "$DIST" = "orel" ];then
            MIRROR=${MIRROR:-"http://dl.astralinux.ru/astra/stable/orel/repository/"}
            EARLY_PACKAGES="$EARLY_PACKAGES ltsp-client"
            LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} --components "main, contrib, non-free" $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR
        fi
        
        if [ "$DIST" = "1.7_x86-64" ]; then
            MIRROR=${MIRROR:-"file:///media/cdrom"}
            if [ "$MOD" = "" ]; then
                echo "Не указан режим работы системы защиты 'ОС Astra Linux $DIST'. Укажите --mode  в числовом выражении 0..2"
                umount -l $P > /dev/null 2>&1 || true 
                exit 1
            fi
            if [ "$MOD" = "1" ] || [ "$MOD" = "2" ]; then
                EARLY_PACKAGES="$EARLY_PACKAGES nbd-client netcat-traditional tftp-hpa parsec linux-astra-modules-common"
                LATE_PACKAGES="$LATE_PACKAGES ltsp-client"
            fi
            if [ "$MOD" = "0" ]; then
                EARLY_PACKAGES="$EARLY_PACKAGES ltsp-client"
            fi
            P=$(echo "$MIRROR" | sed -e 's|^[^/]*//||')
            mkdir -p $ROOT/media/cdrom
            mount -o bind $P $ROOT/media/cdrom > /dev/null 2>&1 || true
            if ! LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} --components "main, contrib, non-free" $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR; then
                until cat $P/.disk/info 2> /dev/null | sed s/\-//g | grep -Ew "1.7_x8664" > /dev/null && grep -qs $P /proc/mounts; do                    
                    i=$((i+1))
                    if [ $i -eq 4 ];then
                        umount -l $P > /dev/null 2>&1 || true
                        exit 1
                    fi
                    echo -n "Вставьте диск c 'ОС Astra Linux $DIST в устройство или смонтируйте iso образ в $P и нажмите [Enter]"                    
                    read item
                done
                LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} --components "main, contrib, non-free" $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR
            fi
            if [ "$UPDATE_BIN" != "" ]; then
                mkdir -p "$ROOT/media/update-bin"
                mount -o loop "$UPDATE_BIN" "$ROOT/media/update-bin" > /dev/null 2>&1
                UPDATE_BIN_MOUNT="deb file:///media/update-bin/ $DIST contrib main non-free"
            fi
            
            if [ "$UPDATE_DEV" != "" ]; then
                mkdir -p "$ROOT/media/update-dev"
                mount -o loop "$UPDATE_DEV" "$ROOT/media/update-dev" > /dev/null 2>&1
                UPDATE_DEV_MOUNT="deb file:///media/update-dev/ $DIST contrib main non-free"
            fi 
        fi
        
        if [ "$DIST" = "4.7_arm" ]; then
            MIRROR=${MIRROR:-"file:///media/cdrom"}
            EARLY_PACKAGES="$EARLY_PACKAGES nbd-client netcat-traditional tftp-hpa parsec linux-astra-modules-common"
            LATE_PACKAGES="$LATE_PACKAGES ltsp-client"

            P=$(echo "$MIRROR" | sed -e 's|^[^/]*//||')
            mkdir -p $ROOT/media/cdrom
            mount -o bind $P $ROOT/media/cdrom > /dev/null 2>&1 || true
            if ! LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} --components "main, contrib, non-free" $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR; then
                until cat $P/.disk/info 2> /dev/null | sed s/\-//g | grep -Ew "4.7.0" > /dev/null && grep -qs $P /proc/mounts; do                    
                    i=$((i+1))
                    if [ $i -eq 4 ];then
                        umount -l $P > /dev/null 2>&1 || true
                        exit 1
                    fi
                    echo -n "Вставьте диск c 'ОС Astra Linux $DIST' в устройство или смонтируйте iso образ в $P и нажмите [Enter]"                    
                    read item
                done
                LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} --components "main, contrib, non-free" $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR
            fi
            if [ "$UPDATE_BIN" != "" ]; then
                mkdir -p "$ROOT/media/update-bin"
                mount -o loop "$UPDATE_BIN" "$ROOT/media/update-bin" > /dev/null 2>&1
                UPDATE_BIN_MOUNT="deb file:///media/update-bin/ $DIST contrib main non-free"
            fi
            
            if [ "$UPDATE_DEV" != "" ]; then
                mkdir -p "$ROOT/media/update-dev"
                mount -o loop "$UPDATE_DEV" "$ROOT/media/update-dev" > /dev/null 2>&1
                UPDATE_DEV_MOUNT="deb file:///media/update-dev/ $DIST contrib main non-free"
            fi 
        fi
        
        if [ "$DIST" = "smolensk" ];then
            MIRROR=${MIRROR:-"file:///media/cdrom"}
            EARLY_PACKAGES="$EARLY_PACKAGES nbd-client netcat-traditional tftp-hpa parsec linux-astra-modules"
            LATE_PACKAGES="$LATE_PACKAGES ltsp-client"
            P=$(echo "$MIRROR" | sed -e 's|^[^/]*//||')
            mkdir -p $ROOT/media/cdrom
            mount -o bind $P $ROOT/media/cdrom > /dev/null 2>&1 || true
            if ! LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} --components "main, contrib, non-free" $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR; then
            until cat $P/.disk/info 2> /dev/null | sed s/\-//g | grep -Ew "smolensk" > /dev/null && grep -qs $P /proc/mounts ; do                    
                i=$((i+1))
                if [ $i -eq 4 ];then
                    umount -l $P > /dev/null 2>&1 || true
                    exit 1
                fi
                echo -n "Вставьте диск c 'ОС Astra Linux 1.6 smolensk в устройство или смонтируйте iso образ в $P и нажмите [Enter]"                    
                read item
                LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} --components "main, contrib, non-free" $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR
            done
            fi
            
            if [ "$UPDATE_BIN" = "" ]; then
                echo "Не указан путь к образу с обновлением  <<ОС Astra Linux 1.6 smolensk>>"
                umount -l $P > /dev/null 2>&1 || true 
                exit 1
            else
                mkdir -p "$ROOT/media/update-bin"
                mount -o loop "$UPDATE_BIN" "$ROOT/media/update-bin" > /dev/null 2>&1
                UPDATE_BIN_MOUNT="deb file:///media/update-bin/ $DIST contrib main non-free"
            fi
        
            if [ "$UPDATE_DEV" = "" ]; then
                echo "Не указан путь к образу с обновлением <<ОС Astra Linux 1.6 smolensk-devel>>"
                umount -l $P > /dev/null 2>&1 || true 
                exit 1
            else
                mkdir -p "$ROOT/media/update-dev"
                mount -o loop "$UPDATE_DEV" "$ROOT/media/update-dev" > /dev/null 2>&1
                UPDATE_DEV_MOUNT="deb file:///media/update-dev/ $DIST contrib main non-free"
            fi
        fi

    
    if [ -x "$CROSS_ARCH_EMULATOR" ]; then
        # configured for cross architecture install.  this requires a
        # statically built emulator such as qemu, and binfmt_misc
        # configured to use the emulator for binaries of that architecture.

        # copy the binary, as it need to be present inside the chroot
        cp "$CROSS_ARCH_EMULATOR" $ROOT/$(dirname $CROSS_ARCH_EMULATOR)
        # finish up last steps of debootstrap now that the emulator is
            # available inside the chroot
            LC_ALL=C chroot $ROOT debootstrap/debootstrap --second-stage
    fi
        
        if [ -f /usr/share/ltsp/rdesktop ]; then
            cp /usr/share/ltsp/rdesktop $ROOT/usr/local/bin
            chmod +x $ROOT/usr/local/bin/rdesktop
        fi
        ;;
esac
fi
