#!/bin/sh export TEXTDOMAIN=slint . gettext.sh TMP=/var/log/setup/tmp if [ ! -d $TMP ]; then mkdir -p $TMP fi # Include function to check for Slint ISO images: . /usr/lib/setup/INCISO while [ 0 ]; do rm -f $TMP/SeTDS $TMP/SeTmount $TMP/SeTsource # OK, at this point /var/log/mount should not have anything mounted on it, # but we will umount just in case. umount /var/log/mount 2> /dev/null # Anything mounted on /var/log/mount now is a fatal error: if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then gettext "Can't umount /var/log/mount. Reboot machine and run setup again." echo exit fi # If the mount table is corrupt, the above might not do it, so we will # try to detect Linux and FAT32 partitions that have slipped by: if [ -d /var/log/mount/lost+found -o -d /var/log/mount/recycled \ -o -r /var/log/mount/io.sys ]; then gettext "Mount table corrupt. Reboot machine and run setup again" echo exit fi while [ 0 ]; do eval_gettext "In order to install directly from the hard disk you must have a \ partition (such as /dev/sda1, /dev/sdb5, etc) with the Slint \ distribution's slint/ directory like you'd find it on the FTP \ site. Please enter the partition (such as /dev/sda1) where the Slint \ sources can be found, or [enter] to see a partition list " > $TMP/tempmsg dialog --title "`gettext "INSTALLING FROM HARD DISK"`" --inputbox \ "`cat $TMP/tempmsg`" 18 80 2> $TMP/source.part if [ ! $? = 0 ]; then rm -f $TMP/source.part $TMP/tempmsg exit fi rm -f $TMP/tempmsg SLACK_DEVICE="`cat $TMP/source.part`" rm -f $TMP/source.part if [ "$SLACK_DEVICE" = "" ]; then dialog --title "`gettext "PARTITION LIST"`" --no-collapse --msgbox "`probe -l | grep -v cylind | grep dev | sort 2> /dev/null`" 22 80 continue; fi break; done dialog --title "`gettext "SELECT SOURCE DIRECTORY"`" --inputbox \ "`gettext "Now we need to know the full path on this partition to the \ slint/ directory where the packages to be installed are kept. For example, if the packages' directory is /stuff/slint, \ then you would respond: /stuff/slint What directory are the Slint sources in? "`" \ 20 80 2> $TMP/source.dir if [ ! $? = 0 ]; then rm -f $TMP/source.dir exit fi SLACK_SOURCE_LOCATION="`cat $TMP/source.dir`" rm -f $TMP/source.dir if mount | grep $SLACK_DEVICE 1> /dev/null 2> /dev/null ; then # This partition is already mounted, so we will have to # tweak things funny. rm -f /var/log/mount 2> /dev/null rmdir /var/log/mount 2> /dev/null PREFIX="`mount | grep $SLACK_DEVICE | cut -f 3 -d ' '`" ln -sf $PREFIX /var/log/mount else SUCCESS=false for type in ext4 ext3 ext2 vfat reiserfs hpfs msdos ; do mount -r -t $type $SLACK_DEVICE /var/log/mount 1> /dev/null 2> /dev/null if [ $? = 0 ]; then # mounted successfully SUCCESS=true break; fi done if [ ! $SUCCESS = true ]; then # there was a mount error gettext "There was a problem mounting your partition. Would you like to:" > $TMP/tempmsg dialog --visit-items --title "`gettext "MOUNT ERROR"`" --menu "`cat $TMP/tempmsg`" 10 80 2 \ "Restart" "`gettext "Start over"`" \ "Ignore " "`gettext "Ignore the error and continue"`" 2> $TMP/dowhat if [ ! $? = 0 ]; then rm -f $TMP/dowhat exit fi DOWHAT="`cat $TMP/dowhat`" rm -f $TMP/dowhat if [ "$DOWHAT" = "Restart" ]; then umount /var/log/mount 2> /dev/null continue; fi echo fi # mount error fi # First, check if a Slint ISO image is present in $SLACK_SOURCE_LOCATION if check_iso_image /var/log/mount/$SLACK_SOURCE_LOCATION /var/log/mntiso ; then echo "/var/log/mntiso" > $TMP/SeTDS echo "-source_mounted" > $TMP/SeTmount echo "/dev/null" > $TMP/SeTsource exit elif [ -d /var/log/mount ]; then echo "/var/log/mount/$SLACK_SOURCE_LOCATION" > $TMP/SeTDS echo "-source_mounted" > $TMP/SeTmount echo "/dev/null" > $TMP/SeTsource exit else eval_gettext " Sorry, but the directory \$SLACK_SOURCE_LOCATION does not exist \ on partition \$SLACK_DEVICE. Would you like to try again? " > $TMP/tempmsg dialog --title "`gettext "SOURCE DIRECTORY NOT FOUND"`" --yesno "`cat $TMP/tempmsg`" 10 80 if [ ! $? = 0 ]; then rm -f $TMP/tempmsg exit fi rm -r $TMP/tempmsg fi done