#!/bin/sh
#
# Copyright 1993, 1994, 1995, 1996, 1997  Patrick Volkerding, Moorhead, MN USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is 
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#  Plamo Linux Ѥܸ setup 礵Ȥˡ
# (isle@st.rim.or.jp)ޤ
#
reset
rm -f /tmp/SeT*
touch /tmp/SeTQUICK # use quick menus by default
touch /tmp/SeTcolor
PATH="$PATH:/usr/lib/setup"
export PATH;
PARTLIST="`fdisk -l | fgrep "Linux native"`" 2> /dev/null
echo "$PARTLIST" > /tmp/SeTplist
T_PX="/"
echo "$T_PX" > /tmp/SeTT_PX
#DISTRIBUTION_SOURCE="/var/adm/mount"
#echo "$DISTRIBUTION_SOURCE" > /tmp/SeTDS
#SOURCE_DEVICE="/dev/fd0"
# We may want to force the issue...
# echo "$SOURCE_DEVICE" > /tmp/SeTsource
ROOT_DEVICE="`mount | fgrep "on / " | cut -b-10`"
echo "$ROOT_DEVICE" > /tmp/SeTrootdev
if mount | fgrep /var/log/mount 1> /dev/null 2> /dev/null ; then # clear source
 umount /var/log/mount                                           # location
fi
#if [ -d /mnt/etc -o /mnt/lost+found ]; then # nothing should be on /mnt here!
# umount -a 1> /dev/null 2> /dev/null
# mount /proc /proc -t proc
#fi
rm -f /var/log/mount 2> /dev/null
rmdir /var/log/mount 2> /dev/null
mkdir /var/log/mount 2> /dev/null

while [ 0 ]; do
 if [ -r /tmp/SeTQUICK ]; then
  QUICK="QUICK"
 else
  QUICK="VERBOSE"
 fi

 dialog --title "Plamo Linux Setup (version HD-0.1)" --menu \
"\nPlamo Linux Setup ؤ褦\n\
\nҥȡܡɤޤȤʤ'+''-'\n\
TABǤޤɤޤ礦" 21 74 10 \
"HELP" "åȥåפΥإפɤ" \
"KEYMAP" "ܡɤꤷޤ" \
"MAKE TAGS" "ॿեޤ" \
"TARGET" "оݤȤʤǥ쥯ȥѹޤ[now: $T_PX]" \
"SOURCE" "󥹥ȡ뤹ѥåꤷޤ" \
"DISK SETS" "󥹥ȡ뤹ǥåȤꤷޤ" \
"INSTALL" "ꤷǥåȤ򥤥󥹥ȡ뤷ޤ" \
"CONFIGURE" "Linux ƥꤷޤ" \
"PKGTOOL" "pkgtool ǥեȤ򥤥󥹥ȡ/ޤ" \
"EXIT" "åȥåפλޤ" 2> /tmp/hdset
 if [ $? = 1 -o $? = 255 ]; then
  rm -f /tmp/hdset /tmp/SeT*
  reset
  exit
 fi
 MAINSELECT="`cat /tmp/hdset`"
 rm /tmp/hdset

 # Start checking what to do. Some modules may reset MAINSELECT to run the
 # next item in line.

 if [ "$MAINSELECT" = "HELP" ]; then
  SeTHELPj
 fi
 
 if [ "$MAINSELECT" = "QUICK" ]; then
  SeTquickj
 fi

 if [ "$MAINSELECT" = "MAKE TAGS" ]; then
  SeTmaketagj
 fi

 if [ "$MAINSELECT" = "KEYMAP" ]; then
  SeTkeymapj
  if [ -r /tmp/SeTkeymap ]; then
   dialog --title "CONTINUE?" --yesno \
"KEYMAP ꤬λޤ˥󥹥ȡ븵ؿʤߤޤ" 7 70
   if [ $? = 0 ]; then
    MAINSELECT="SOURCE" 
   fi
  fi
 fi

 if [ "$MAINSELECT" = "SOURCE" ]; then
  SeTmediaj 
  if [ -r /tmp/SeTsource -a ! -r /tmp/SeTSERIES ]; then
   dialog --title "CONTINUE?" --yesno \
"󥹥ȡ븵꤬ޤ DISK SETS ؿʤ \
󥹥ȡ뤷ǥåȤꤷޤ" 9 70
   if [ $? = 0 ]; then
    MAINSELECT="DISK SETS"
   fi
  elif [ -r /tmp/SeTsource -a -r /tmp/SeTSERIES ]; then
   dialog --title "CONTINUE?" --yesno \
"󥹥ȡ븵ȥ󥹥ȡ뤹ǥåȤ꤬ޤ \
Τޤޥ󥹥ȡ¹ԤޤȤᥤ˥塼 \
ޤΤޤޥ󥹥ȡ뤹ʤ'y'Ǥ" 9 70
   if [ $? = 0 ]; then
    MAINSELECT="INSTALL"
   fi
  fi
 fi

 if [ "$MAINSELECT" = "TARGET" ]; then
  dialog --title "TARGET DIRECTORY ѹ" --yesno \
"Target directoryϥѥåŸǥ쥯ȥǤ
Ƥξ硢ǥեȤ '/' ѹɬפϤ
󤬡餫ͳ̤Υǥ쥯ȥ˥󥹥ȡ뤹
ѹɬפޤʤ顢'/' ʳΥǥ
쥯ȥǤϥƥϵưǤޤ󡣥󥹥ȡΥǥ
쥯ȥѹޤ" 11 72
  if [ $? = 1 ]; then
   continue;
  fi
  dialog --inputbox "Slackware ɤΥǥ쥯ȥ˥󥹥ȡ뤷ޤ" \
  9 40 2> /tmp/slackdir
  if [ $? = 0 ]; then
   T_PX="`cat /tmp/slackdir`"
   mkdir -p $T_PX
   echo "$T_PX" > /tmp/SeTT_PX
  else
   rm -f /tmp/slackdir 
   continue
  fi 
  rm -f /tmp/slackdir
 fi

 if [ "$MAINSELECT" = "DISK SETS" ]; then
  SeTPKG
  if [ -r /tmp/SeTSERIES -a -r /tmp/SeTsource ]; then
   dialog --title "CONTINUE?" --yesno \
"ޤǤ˥󥹥ȡ븵Υǥ쥯ȥȥ󥹥ȡ뤹
ѥå꤬λޤΤޤ޼ºݤΥ󥹥ȡ
ؿʤߤޤȤ⤤äᥤ˥塼ޤ
ºݤΥ󥹥ȡؿʤ'y'Ǥ" 10 72
   if [ $? = 0 ]; then
    MAINSELECT="INSTALL"
   fi
  fi
 fi

 if [ "$MAINSELECT" = "INSTALL" ]; then
  if [ ! -r /tmp/SeTSERIES -o ! -r /tmp/SeTsource -o ! /tmp/SeTnative ]; then
   dialog --title "ޤ󥹥ȡǤޤ" --msgbox \
"\n\
եȥ򥤥󥹥ȡ뤹ˤϡʲ򤷤Ƥ\n\
\n\
1. 󥹥ȡ븵Υǥ \n\
2. 󥹥ȡ뤹ǥåȤ \n\
\n\
ޤɬפ˱ƥܡɤꤷꡢ󥹥ȡȤ \n\
'/'ʳΥǥ쥯ȥꤹ뤳ȤǤޤ \n\
\n\
ENTER 򲡤Хᥤ˥塼ޤ" 15 72
   continue
  fi
  SERIES="-sets `cat /tmp/SeTSERIES`"
  SOURCE_DEVICE="`cat /tmp/SeTsource`"
  IGNORE_TAGFILES=""
  while [ 0 ]; do
   dialog --title "ץץȥ⡼ɤ" --menu \
"\n\
󥹥ȡκݤΥեɤ뤫򤷤\n\
褯狼ʤϥإפɤǤ\n\n\
ɤΥץץȥ⡼ɤѤޤ\
" 19 70 7 \
"NORMAL" "ǥեȤΥեѤ礻" \
"MENU" "Ūʥ˥塼顤ѥå֥ƥ򤹤" \
"CUSTOM" "ѥåǥ쥯ȥΥॿե" \
"PATH" "ꤷѥΥ֥ǥ쥯ȥˤ륿ե" \
"EXPERT" "Ūʥ˥塼ġΥѥå򤹤" \
"NONE" "եϻѤޤ - ƥ󥹥ȡ" \
"HELP" "ץץȥ⡼ɤΥإפɤ" 2> /tmp/SeTpmode
   if [ $? = 1 -o $? = 255 ]; then
    rm -f /tmp/SeTpmode
    exit
   fi
   MODE="`cat /tmp/SeTpmode`"
   rm -f /tmp/SeTtagext

   if [ "$MODE" = "HELP" ]; then
    dialog --title "ץץȥ⡼ɤΥإ" --textbox "/usr/lib/setup/PROMPThelpj" 19 65
   fi

   if [ "$MODE" = "PATH" ]; then
dialog --title "եΥѥ" --inputbox \
"CD-ROMΥ󥹥ȡǤСѥåǥ쥯ȥ \n\
եԽǤޤ󡣤ξ硢ॿե \n\
ξѥǻǤޤȤơ/tagfilesǥ쥯 \n\
˥ե񤭹եåԡޥ \n\
Ȥ뤳ȤǤޤѥ'/tagfiles'ȻꤹФ褤 \n\
åȥåץץϤʤλꤷѥΡ֥֥ \n\
쥯ȥפ˥եõ˹Ԥޤ \n\
㤨/tagfiles/a1/tagfiles/ap1/tagfiles/d1ʤɤǤ \n\
󥹥ȡ뤷ǥåȤΣܤΥǥФ륵 \n\
ǥ쥯ȥȥեѰդФ褤Ǥ¾Υѥå \n\
פǤˡꤵ줿ѥ˥ե뤬Ĥʤ \n\
ϡǥեȤΥեѤޤॿ \n\
ΥѥϤƤ" 20 70 2> /tmp/SeTtagpath
    if [ $? = 1 -o $? = 255 ]; then
     continue
    fi
    if [ -r /tmp/SeTtagpath ]; then
     if [ "`cat /tmp/SeTtagpath`" = "" ]; then
      rm -f /tmp/SeTtagpath
     fi
    fi
    break;
   fi

   if [ "$MODE" = "NORMAL" ]; then
    dialog --infobox "Ρޥץץȥ⡼ɡǥեȤΥե \n\
Ѥѥå򥤥󥹥ȡ뤹뤫ɤ礻򤷤ޤ" 4 72
    break;
   fi

   if [ "$MODE" = "CUSTOM" ]; then
    dialog --title "ĥҤ" --inputbox \
"ॿե˻ѤĥҤϤƤ\n\
.nte ȻꤹХΡ PC ѤΡ.dsk ȻꤹС\n
ǥȥåѤδĶۤޤ" \
15 72 2> /tmp/SeTtagext
    if [ $? = 1 -o $? = 255 ]; then
     continue
    fi
    if [ -r /tmp/SeTtagext ]; then
     if [ "`cat /tmp/SeTtagext`" = "" ]; then
      rm -f /tmp/SeTtagext
     fi
    fi
    dialog --infobox "ץץȥ⡼ɡॿե \n\
ä礻򤷤ޤ" 4 60
    break;
   fi

   if [ "$MODE" = "NONE" ]; then
    dialog --title "ٹ" --yesno "
ơפ򥤥󥹥ȡ뤹ΤϤʤˤȤȤϻפޤ\n\
Ǳˤ٤ƤΥѥå򥤥󥹥ȡ뤷Ƥޤȡʤδ\n\
褦ʥ٥Ȥʥ󥹥ȡϤǤޤ󡣥ץץȤʤ\n\
˥󥹥ȡ뤷ޤ" 13 70
    if [ ! $? = 0 ]; then
     continue
    fi
    IGNORE_TAGFILES="-ignore_tagfiles"
    dialog --infobox "ץץȥ⡼ɤ򤵤ޤǤ\n\
򤵤줿ǥåȤΤ٤ƤΥѥå򥤥󥹥ȡ뤷ޤ" 4 70
    break;
   fi

   if [ "$MODE" = "MENU" ]; then
    >/tmp/SeTQUICK
    MAKETAG="maketag.ez"
    dialog --infobox "˥塼ץץȥ⡼ɡ˥塼Ѥ \n\
ϢѥåΥ֥ƥ򤷤ޤ" 4 70
    break;
   fi

   if [ "$MODE" = "EXPERT" ]; then
    >/tmp/SeTQUICK
    MAKETAG="maketag"
    dialog --infobox "˥塼ץץȥ⡼ɡ˥塼Ѥ \n\
ġΥѥå򤷤ޤ" 4 70
    break;
   fi
  done
  export MAKETAG;
  sleep 3
  SOURCE_MOUNTED="`cat /tmp/SeTmount`"
  DISTRIBUTION_SOURCE="`cat /tmp/SeTDS`"
  if [ "$DISTRIBUTION_SOURCE" != "" ]; then
   cpkgtool $SOURCE_MOUNTED $IGNORE_TAGFILES -source_device $SOURCE_DEVICE -source_dir $DISTRIBUTION_SOURCE -target_dir $T_PX $SERIES
  else
   cpkgtool $SOURCE_MOUNTED $IGNORE_TAGFILES -source_device $SOURCE_DEVICE -target_dir $T_PX $SERIES
  fi
  MAINSELECT="CONFIGURE"
 fi

 if [ "$MAINSELECT" = "CONFIGURE" ]; then
  SeTconfigj
 fi

 if [ "$MAINSELECT" = "PKGTOOL" ]; then
  cpkgtoolj
 fi

 if [ "$MAINSELECT" = "EXIT" ]; then
  rm -f /tmp/SeT*
  reset
  break
 fi

done # end of main loop

rm -f /tmp/tagfile /tmp/SeT*
 
sync
if mount | fgrep /var/log/mount 1> /dev/null 2> /dev/null ; then
 umount /var/log/mount 
fi
rm -f /var/log/mount 2> /dev/null
rmdir /var/log/mount 2> /dev/null
mkdir /var/log/mount 2> /dev/null
chmod 755 /var/log/mount
if [ -r /tagfile ]; then
 rm -f /tagfile
fi
chmod 755 $T_PX
if [ -d $T_PX/tmp ]; then
 chmod 1777 $T_PX/tmp
fi
# end slackware setup script

