home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- while [ 0 ]; do
- rm -f /tmp/SeTDS /tmp/SeTmount
-
- while [ 0 ]; do
- cat << EOF > /tmp/tmpmsg
-
- In order to install directly from the hard disk you must
- have a partition with a directory containing the Slackware
- distribution such that each disk other than the boot disk
- is contained in a subdirectory. For example, if the
- distribution is in /stuff/slack, then you have to have
- directories named /stuff/slack/a1, /stuff/slack/a2, and so
- on each containing the files that would be on that disk.
- You may install from DOS, HPFS, or Linux partitions.
- Please enter the partition where the Slackware sources can
- be found, or [enter] to see a partition list: \n
- EOF
- dialog --title "INSTALLING FROM HARD DISK" --inputbox \
- "`cat /tmp/tmpmsg`" 20 70 2> /tmp/source.part
- if [ $? = 1 -o $? = 255 ]; then
- rm -f /tmp/source.part /tmp/tmpmsg
- exit
- fi
- rm -f /tmp/tmpmsg
- SLACK_DEVICE="`cat /tmp/source.part`"
- rm -f /tmp/source.part
- if [ "$SLACK_DEVICE" = "" ]; then
- dialog --title "PARTITION LIST" --msgbox "`fdisk -l | fgrep -v cylind | fgrep dev 2> /dev/null`" 22 75
- continue;
- fi
- break;
- done
-
- dialog --title "SELECT SOURCE DIRECTORY" --inputbox \
- "\n\
- Now we need to know what directory on this partition \n\
- the Slackware sources can be found in. (The directory \n\
- in which the subdirectories for each disk is found) \n\
- NOTE: You must give the directory name relative to the \n\
- top of the partition. So, for example, if you're going \n\
- to mount this partition under /usr, don't include the \n\
- '/usr'at the beginning of the pathname. \n\n\
- What directory are the Slackware sources in? \n" \
- 19 65 2> /tmp/source.dir
- if [ $? = 1 -o $? = 255 ]; then
- rm -f /tmp/source.dir
- exit
- fi
- SLACK_SOURCE_LOCATION="`cat /tmp/source.dir`"
- rm -f /tmp/source.dir
- if mount | fgrep $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/adm/mount 2> /dev/null
- rmdir /var/adm/mount 2> /dev/null
- PREFIX="`mount | fgrep $SLACK_DEVICE`"
- PREFIX="`echo "$PREFIX" | cut -b14-`"
- end_of_line="1"
- while [ 0 ]; do
- end_of_line="`expr $end_of_line + 1`"
- if [ "`echo "$PREFIX" | cut -b$end_of_line`" = " " ]; then # Found it!
- end_of_line="`expr $end_of_line - 1`"
- break;
- fi
- done
- PREFIX="`echo "$PREFIX" | cut -b1-$end_of_line`"
- ln -sf $PREFIX /var/adm/mount
- else
- while [ 0 ]; do
- dialog --title "SELECT FILESYSTEM TYPE" --menu "What type of filesystem does your Slackware \
- source partition contain?" 13 65 5 \
- "1" "FAT (MS-DOS, DR-DOS, OS/2)" \
- "2" "Linux Second Extended Filesystem" \
- "3" "Linux Xiafs" \
- "4" "Linux MINIX" \
- "5" "OS/2 HPFS" 2> /tmp/filesys
- if [ $? = 1 -o $? = 255 ]; then
- rm -f /tmp/filesys
- exit
- fi
- FILESYS="`cat /tmp/filesys`"
- rm -f /tmp/filesys
- if [ "$FILESYS" = "1" ]; then
- SLACK_FS_TYPE="msdos"
- break;
- elif [ "$FILESYS" = "2" ]; then
- SLACK_FS_TYPE="ext2"
- break;
- elif [ "$FILESYS" = "3" ]; then
- SLACK_FS_TYPE="xiafs"
- break;
- elif [ "$FILESYS" = "4" ]; then
- SLACK_FS_TYPE="minix"
- break;
- elif [ "$FILESYS" = "5" ]; then
- SLACK_FS_TYPE="hpfs"
- break;
- fi
- done
- if [ "$FILESYS" = "5" ]; then
- mount -o ro -t $SLACK_FS_TYPE $SLACK_DEVICE /var/adm/mount 1> /dev/null 2> /dev/null
- else
- mount -t $SLACK_FS_TYPE $SLACK_DEVICE /var/adm/mount 1> /dev/null 2> /dev/null
- fi
- if [ ! $? = 0 ]; then # there was a mount error
- cat << EOF > /tmp/tmpmsg
- There was a problem mounting your partition. Would you like to:
-
- EOF
- dialog --title "MOUNT ERROR" --menu "`cat /tmp/tmpmsg`" 10 68 2 \
- "Restart" "Start over" \
- "Ignore " "Ignore the error and continue" 2> /tmp/dowhat
- if [ $? = 1 -o $? = 255 ]; then
- rm -f /tmp/dowhat
- exit
- fi
- DOWHAT="`cat /tmp/dowhat`"
- rm -f /tmp/dowhat
- if [ "$DOWHAT" = "Restart" ]; then
- umount /var/adm/mount 2> /dev/null
- continue;
- fi
- echo
- fi # mount error
- fi
-
- if [ -d /var/adm/mount/$SLACK_SOURCE_LOCATION ]; then
- echo "/var/adm/mount/$SLACK_SOURCE_LOCATION" > /tmp/SeTDS
- echo "-source_mounted" > /tmp/SeTmount
- echo "/dev/null" > /tmp/SeTsource
- exit
- else
- cat << EOF > /tmp/tmpmsg
-
- Sorry, but the directory $SLACK_SOURCE_LOCATION does not exist
- on partition $SLACK_DEVICE.
-
- Would you like to try again?
- EOF
- dialog --title "SOURCE DIRECTORY NOT FOUND" --yesno "`cat /tmp/tmpmsg`" 10 70
- if [ $? = 1 -o $? = 255 ]; then
- rm -f /tmp/tmpmsg
- exit
- fi
- rm -r /tmp/tmpmsg
- fi
-
- done
-