#!/bin/sh
T_PX="`cat /tmp/SeTT_PX`"
rm -f /tmp/SeTmount /tmp/SeTDS /tmp/SeTCDdev

modprobe isofs
modprobe nls_cp932
modprobe sr_mod

dialog --title "Install from the Plamo Linux CD-ROM" \
--menu \
"Plamo LinuxǤϡATAPISCSIʳȼCD-ROMϥݡ \n\
ƤޤʥƥȴĶ¸ߤʤΤǡ \n\
CD-ROMξ硢餫CD-ROMƤϡɥǥ \n\
˥ԡƤơHDD饤󥹥ȡ뤹ˡޤ \n\
PDɥ饤֤CD-ROMȤǧʤ \n\
LUNѤƤߤƤDOS/VѤMacѤˤʤɡ \n\
ȤCDɥ饤֤μϡ" 18 74 4 \
"scan" "CDɥ饤֤ΥפưǧƤߤޤ" \
"1" "ۤȤɤATAPI/IDE CDɥ饤 (/dev/hd*)" \
"2" "SCSI (/dev/scd0 뤤 /dev/scd1)" \
2> /tmp/cdtype
if [ $? = 1 -o $? = 255 ]; then
 rm -f /tmp/tmpmsg /tmp/cdtype
 exit
fi
CD_ROM_TYPE="`cat /tmp/cdtype`"
rm -f /tmp/tmpmsg /tmp/cdtype
if [ "$CD_ROM_TYPE" = "scan" ]; then
  for device in /dev/sr0 /dev/sr1 /dev/sr2 /dev/scd0 /dev/scd1 /dev/scd2 /dev/scd3 /dev/scd4 /dev/scd5 /dev/scd6 ; do
   dialog --infobox "$device򥹥..." 3 60
   mount -o ro -t iso9660 $device /var/adm/mount 1> /dev/null 2> /dev/null
   if [ $? = 0 ]; then
    DRIVE_FOUND=$device
    break
   fi
  done
  umount /var/adm/mount 1> /dev/null 2> /dev/null
  if [ "$DRIVE_FOUND" = "" ]; then
   dialog --title "ɥ饤֤Ĥޤ" --msgbox "Ĵ٤ǥХΤɤˤCD-ROMɥ饤֤ĤޤǤ\n\
ʬCDɥ饤֤򥵥ݡȤƤ֡ȥǥѤƤ뤫\n\
ǧƤߤƤɥ饤֤ǧ뤿ɬפʡܤ\n\
ˤĤƤϡեBOOTING򻲾ȤƤ줫 \n\
󥹥ȡ˺ĩ路ƤߤƤɤƤʾϡ\n\
FAQ.TXTCDƤDOSѡƥ˥ԡƥ󥹥ȡ\n\
ˡ񤫤ƤޤΤǡ򻲾ȤƤ" 14 70
  else
   dialog --title "CD-ROMɥ饤֤Ĥޤ" --msgbox "CD-ROMǥХ$DRIVE_FOUNDˤޤ" 5 65
   CD_DEVICE="$DRIVE_FOUND"
  fi
elif [ "$CD_ROM_TYPE" = "2" ]; then
 dialog --title "SCSIǥХ" --menu "ɤSCSI CD-ROMѤޤʤ狼ʤϡ\n\
/dev/scd0 Ǥ" 10 60 3 \
"/dev/scd0" "SCSI CD 0" \
"/dev/scd1" "SCSI CD 1" \
"/dev/scd2" "SCSI CD 2" \
"/dev/scd3" "SCSI CD 3" \
"/dev/scd4" "SCSI CD 4" \
"/dev/scd5" "SCSI CD 5" \
"/dev/scd6" "SCSI CD 6"  2> /tmp/whichscsi
 if [ $? = 1 -o $? = 255 ]; then
  rm -f /tmp/tmpmsg /tmp/cdtype /tmp/whichscsi
  exit
 fi
 CD_DEVICE="`cat /tmp/whichscsi`"
 rm -f /tmp/whichscsi
elif [ "$CD_ROM_TYPE" = "3" ]; then
 CD_DEVICE="/dev/sonycd"
elif [ "$CD_ROM_TYPE" = "4" ]; then
 CD_DEVICE="/dev/cdu535"
elif [ "$CD_ROM_TYPE" = "5" ]; then
 CD_DEVICE="/dev/mcd"
elif [ "$CD_ROM_TYPE" = "6" ]; then
 CD_DEVICE="/dev/mcdx0"
elif [ "$CD_ROM_TYPE" = "7" ]; then
 CD_DEVICE="/dev/sbpcd"
elif [ "$CD_ROM_TYPE" = "8" ]; then
 CD_DEVICE="/dev/aztcd"
elif [ "$CD_ROM_TYPE" = "9" ]; then
 CD_DEVICE="/dev/cm206cd"
elif [ "$CD_ROM_TYPE" = "10" ]; then
 CD_DEVICE="/dev/gscd"
elif [ "$CD_ROM_TYPE" = "11" ]; then
 CD_DEVICE="/dev/optcd"
elif [ "$CD_ROM_TYPE" = "12" ]; then
 CD_DEVICE="/dev/sjcd"
elif [ "$CD_ROM_TYPE" = "1" ]; then
 dialog --title "IDEǥХ" --menu "CD-ROMɥ饤֤ϤɤIDEǥХ³Ƥޤ \n\
ɤʬʤСưФƤߤ뤳ȤǤޤ" 17 70 9 \
"scan" "ɥ饤֤ưФƤߤޤ" \
"/dev/hda" "ץ饤ޥIDE󥿡ե, ɥ饤1" \
"/dev/hdb" "ץ饤ޥIDE󥿡ե, ɥ饤2" \
"/dev/hdc" "IDE󥿡ե, ɥ饤1" \
"/dev/hdd" "IDE󥿡ե, ɥ饤2" \
"/dev/hde" "IDE󥿡ե, ɥ饤1" \
"/dev/hdf" "IDE󥿡ե, ɥ饤2" \
"/dev/hdg" "եIDE󥿡ե, ɥ饤1" \
"/dev/hdh" "եIDE󥿡ե, ɥ饤2" \
2> /tmp/idecd
 if [ ! "`cat /tmp/idecd`" = "scan" ]; then
  CD_DEVICE="`cat /tmp/idecd`"
 else
  for device in /dev/hdd /dev/hdc /dev/hdb /dev/hda \
/dev/hde /dev/hdf /dev/hdg /dev/hdh ; do
   dialog --infobox "$device..." 3 30
   mount -o ro -t iso9660 $device /var/adm/mount 1> /dev/null 2> /dev/null
   if [ $? = 0 ]; then
    DRIVE_FOUND=$device
    break
   fi
  done
  umount /var/adm/mount 1> /dev/null 2> /dev/null
  if [ "$DRIVE_FOUND" = "" ]; then
   dialog --title "ɥ饤֤Ĥޤ" --msgbox "Ĵ٤ɤΥǥХˤIDE(ATAPI) CD-ROMɥ饤֤ϸĤ\n\
ޤǤɥ饤֤ǧ뤿ɬפʡܤ \n\
դƤϡեBOOTING򻲾ȤƤ줫\n\
󥹥ȡ˺ĩ路ƤߤƤɤƤʾϡ\n\
FAQ.TXTCDƤDOSѡƥ˥ԡƥ󥹥\n\
ˡ񤫤ƤޤΤǡ򻲾ȤƤ" \
12 70
  else
   dialog --title "IDE(ATAPI) CD-ROMɥ饤֤Ĥޤ" --msgbox "IDE(ATAPI) CD-ROMɥ饤֤ǥХ$DRIVE_FOUNDǸĤޤ" 5 70
   CD_DEVICE="$DRIVE_FOUND"
  fi
 fi
fi

# The CD will be mounted automatically later on:
if [ "$DRIVE_FOUND" != "" ]; then
    echo "$CD_DEVICE       /cdrom        iso9660       user,ro,noauto,exec,iocharset=euc-jp  0   0" > /tmp/SeTcdfstab
fi

while [ 0 ] ; do
 dialog --title "󥹥ȡˡ" \
--menu "Plamo Linux  CD-R Υ󥹥ȡξ plamo  \n\
Ǥ(/cdrom/plamo ɬפʥե뤬󥹥ȡ뤵ޤ) \n\
CD-RʳCD-ROM饤󥹥ȡ뤹ϡcustom  \n\
plamo LinuxΥѥåΤǥ쥯ȥꤷƤ" 15 74 4 \
 "plamo" "ϡɥǥؤ̾Υ󥹥ȡ" \
 "custom" "̾Ȥϰۤʤǥ쥯ȥ꤫Υ󥹥ȡ" \
 2> /tmp/SeTreturn
 if [ $? = 1 -o $? = 255 ]; then
  rm -f /tmp/cdtype /tmp/SeTreturn
  exit
 fi
 if [ "`cat /tmp/SeTreturn`" = "help" ]; then
  dialog --title "󥹥ȡˡΥإ" --textbox /usr/lib/setup/IMhelpj \
  20 74
  continue
 fi
 break
done

SLACK_SOURCE_LOCATION="`cat /tmp/SeTreturn`"

if [ "$SLACK_SOURCE_LOCATION" = "custom" ]; then
 dialog --title "󥹥ȡ븵ǥ쥯ȥ" --inputbox "Plamo Linux \
 äƤCDΥǥ쥯ȥ\n\
 ƤCDμˤäưۤʤäƤǽ\n\
 ޤƬ'/'ϾʤƤޤäƤ⤫ޤޤ \n\
 ɤΥǥ쥯ȥPlamo LinuxΥޤ" 11 67 \
 2> /tmp/slacksource
 if [ $? = 1 -o $? = 255 ]; then
  rm -f /tmp/cdtype /tmp/slacksource
  exit
 fi
 rm -f /tmp/tmpmsg
 SLACK_SOURCE_LOCATION="`cat /tmp/slacksource`"
 rm -f /tmp/slacksource
fi

while [ 0 ]; do
 mount -o ro -t iso9660 $CD_DEVICE /var/adm/mount 1> /dev/null 2> /dev/null
 if [ ! $? = 0 ]; then
  dialog --title "MOUNT ERROR" --menu "CD-ROMΥޥ˥顼ȯޤ" 11 60 3 \
"1" "CDΥ󥹥ȡ" \
"2" "CD-ROM٥ޥȤƤߤ" \
"3" "顼̵뤷³" 2> /tmp/errordo
  if [ $? = 1 -o $? = 255 ]; then
   rm -f /tmp/SeTDS /tmp/SeTmount /tmp/SeTCDdev /tmp/errordo
   exit;
  fi
  DOWHAT="`cat /tmp/errordo`"
  rm -f /tmp/errordo
  if [ $DOWHAT = 1 ]; then
   rm -f /tmp/SeTDS /tmp/SeTmount /tmp/SeTCDdev
   exit;
  elif [ $DOWHAT = 3 ]; then
   break;
  fi
 else
  if [ ! -d /var/adm/mount/$SLACK_SOURCE_LOCATION ]; then
   dialog --title "顼ǥ쥯ȥ꤬Ĥޤ" --msgbox "Plamo LinuxΥǥ쥯ȥ꤬ĤޤǤ\n\
󥹥ȡ뤹ˤϡǥ쥯ȥꤷľƤ" 8 70
    rm -f /tmp/SeTmount /tmp/SeTDS /tmp/SeTCDdev   
   exit
  fi
  break;
 fi
done

# since we've mounted successfully, let's refresh the link:
if [ ! -d $T_PX/dev ]; then
 mkdir $T_PX/dev
 chown root.root $T_PX/dev
 chmod 755 $T_PX/dev
fi
( cd $T_PX/dev ; ln -sf $CD_DEVICE cdrom )
echo "/var/adm/mount/$SLACK_SOURCE_LOCATION" > /tmp/SeTDS
echo "-source_mounted" > /tmp/SeTmount
echo "$CD_DEVICE" > /tmp/SeTCDdev
echo "/dev/null" > /tmp/SeTsource
