home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / ls / install / request < prev   
Text File  |  1998-08-19  |  6KB  |  288 lines

  1. #!/bin/sh
  2. #ident    "@(#)request    1.2"
  3. #
  4. #  Request script for the ls package
  5. #
  6. #
  7. #
  8. # set LSVAR for use later
  9. #
  10. LSVAR=/var/opt/ls
  11. MENU_RESP=$1
  12. PKGMSG=ls.pkg
  13.  
  14. # There are three scenarious in which this script will run:
  15. #
  16. # $HOW_INSTALL=
  17. #
  18. # (a) ON_BFLOP:        it is called from the
  19. #            boot floppies. 
  20. #
  21. # (b) POSTREBOOT:    it is called upon reboot from set installation on the
  22. #            boot floppies.
  23. #
  24. # (c)NORMAL:        it is called from pkgadd'ing the individual package
  25. #            or from the network set installation.
  26. write_exit()
  27. {
  28.     echo CLASSES=\"${CLASSES}\" >> ${MENU_RESP}
  29.  
  30.     echo KEYBOARD=\"$KEYBOARD\" >> ${MENU_RESP}
  31.     echo LOCALE=\"$LOCALE\" >> ${MENU_RESP}
  32.     echo DOALL=\"$DOALL\" >> ${MENU_RESP}
  33.     echo GRAPHICS=\"$GRAPHICS\" >> ${MENU_RESP}
  34.     echo LANGUAGE=\"$LANGUAGE\" >> ${MENU_RESP}
  35.     echo TERR=\"$TERR\" >> ${MENU_RESP}
  36.     if [ "$HOW_INSTALL" = "NORMAL" ]
  37.     then
  38.         menu -c
  39.     fi
  40.         exit 0
  41. }
  42.  
  43. HOW_INSTALL=NORMAL
  44. # The following HOW_INSTALL clauses are order dependent
  45.  
  46. # We are rebooting after installation if the script
  47. # /etc/rc2.d/S02POSTINST exists
  48. [ -f /etc/rc2.d/S02POSTINST ] && {
  49.     HOW_INSTALL=POSTREBOOT
  50. }
  51.  
  52. # We are on the boot floppies if:
  53.  
  54. # the script /etc/inst/scripts/postreboot.sh exists 
  55. [ -f /etc/inst/scripts/postreboot.sh ] && {
  56.     HOW_INSTALL=ON_BFLOP
  57. }
  58.  
  59. # Graphics support will always be installed
  60. # previously it had been optional depending on whether graphics was 
  61. # already installed
  62. GRAPHICS=YES
  63.  
  64. if [ "$HOW_INSTALL" != "POSTREBOOT" ]
  65. then
  66.  
  67.     if [ $GRAPHICS = "YES" ]
  68.     then
  69.         CLASSES="base xsup build"
  70.     else
  71.         CLASSES="base"
  72.     fi
  73. elif $SILENT_INSTALL
  74. then
  75.     if [ "$KEYBOARD" = "" ]
  76.     then
  77.         KEYBOARD=NONE
  78.     fi
  79.  
  80. #   Write out the configuration.
  81.     write_exit
  82. fi
  83.  
  84.  
  85. if [ "$HOW_INSTALL" = "ON_BFLOP" ] 
  86. then
  87. # create magic file for postreboot.sh to know LS is installed
  88. > /tmp/ls
  89.     echo CLASSES=\"${CLASSES}\" >> ${MENU_RESP}
  90.     exit 0
  91. fi
  92.  
  93.  
  94. MLOCALE=${LC_ALL:-${LC_MESSAGES:-${LANG:-C}}}
  95. MENU_DIR=/etc/inst/locale/${MLOCALE}/menus/${PKGINST}
  96.  
  97.  
  98. if [ ! -f ${MENU_DIR}/menu.up.err ] 
  99. then
  100.     if [ ! -d ${REQDIR}/${PKG}/${MLOCALE} ]
  101.     then
  102.         MLOCALE=C
  103.     fi
  104.     MENU_DIR=${REQDIR}/${PKG}/${MLOCALE}
  105. fi
  106.     
  107. #
  108. #  Set up to use menu_colors; default to C-locale if ${LANG}'s dir has
  109. #  no menu_colors.sh
  110. #
  111. if [ -f /etc/inst/locale/${MLOCALE}/menus/menu_colors.sh ]
  112. then
  113.         . /etc/inst/locale/${MLOCALE}/menus/menu_colors.sh
  114. else
  115.         . /etc/inst/locale/C/menus/menu_colors.sh
  116. fi
  117.  
  118. menu_colors regular
  119.  
  120.  
  121. # BEGIN UP'N'OVER SUPPORT
  122.  
  123. SCRIPTS=/usr/sbin/pkginst
  124. PKGINSTALL_TYPE=NEWINSTALL
  125.  
  126. # Call chkpkgrel to determine installation type.
  127. # As a side effect, /etc/inst/save.user/ls.env is created.
  128. ${SCRIPTS}/chkpkgrel
  129.    PKGVERSION=$?
  130.  
  131.  
  132.  
  133. case $PKGVERSION in
  134.     2)    PKGINSTALL_TYPE=OVERLAY    ;;
  135.     4)    PKGINSTALL_TYPE=UPGRADE    ;;
  136.     6)    PKGINSTALL_TYPE=UPGRADE2    ;;
  137.     *)    ;;
  138. esac
  139. export PKGINSTALL_TYPE
  140.  
  141.  
  142. if [ $HOW_INSTALL = "NORMAL" -a ! -f /etc/skel/.UpgradeVer* ] 
  143. then
  144. # /etc/skel/.UpgradeVer* files exist only on UW2.0+ systems.
  145. # This test is to ensure that the LS package does not get pkgadd'ed
  146. # on a pre-UW2.0 system, because underlying system dependencies
  147. # will not be in place.
  148.         menu -f $MENU_DIR/menu.up.err -o /dev/null
  149.     exit 1
  150. fi
  151.  
  152. #
  153. #  Check whether the boot floppies configured a keyboard.
  154. #
  155.  
  156.  
  157. eval `defadm keyboard KEYBOARD 2> /dev/null`
  158. if [ $? != 0 ]
  159. then
  160.  
  161.     KEYBOARD=""
  162.     if [ "$HOW_INSTALL" = "NORMAL" ]
  163.     then
  164.         menu -f $MENU_DIR/menu.ls00 -o /tmp/lSinfo -r
  165.     fi
  166. else
  167.     if [ -z "$KEYBOARD" ] 
  168.     then
  169.         KEYBOARD=NONE
  170.         export KEYBOARD
  171.     fi
  172.     
  173.  
  174. KEYTMP1=`egrep "$KEYBOARD" $MENU_DIR/menu.ls1 |tr "/" ";"`
  175. KEYTMP2=`echo $KEYBOARD | tr "/" ";"`
  176. KEYBOARD_NAME=`echo $KEYTMP1 | sed -e "s/.*$KEYTMP2:://" | sed -e "s/\;\;.*//"`
  177.     export KEYBOARD_NAME
  178.     if [ "$PKGINSTALL_TYPE" = "OVERLAY" -o "$PKGINSTALL_TYPE" = "UPGRADE2" ]
  179.     then 
  180.         eval `grep -v KEYBOARD $UPGRADE_STORE/$LSVAR/config 2> /dev/null`
  181.         if [ $? = 0 ] && [ ! -z "$LOCALE" ] && [ ! -z "$DOALL" ] && 
  182.             [ ! -z "$LANGUAGE" ] && [  ! -z "$TERR" ]
  183.         then
  184.  
  185.             if [ $HOW_INSTALL = "NORMAL" ]
  186.             then
  187.                 
  188.  
  189.                 LOCALES_INST=`LC_MESSAGES=$MLOCALE gettxt "${PKGMSG}:3:All Locales"`
  190.                 LOCALE_NAME=`egrep "!$LOCALE" $MENU_DIR/menu.ls2 | sed -e"s/.*!$LOCALE:://" | sed -e"s/\/\/.*//"`
  191.                 export LOCALE_NAME LOCALES_INST
  192.                 menu -r -f $MENU_DIR/menu.ls04 -o /tmp/lSinfo -r
  193.  
  194.                       OPT=`cat /tmp/lSinfo`
  195.  
  196.                       OPT=`expr "$OPT" : '.*"\(.*\)"'`
  197.  
  198.                   if [ $OPT -eq 1 ]
  199.                   then
  200.                     write_exit
  201.                   else
  202.                     KEYBOARD=""
  203.                 fi
  204.             else
  205.  
  206.                 write_exit
  207.             fi
  208.         elif [ "$HOW_INSTALL" = "NORMAL"  ]
  209.         then
  210.                   menu -f $MENU_DIR/menu.ls01 -o /tmp/lSinfo -r
  211.                   menu -f $MENU_DIR/menu.ls02 -o /tmp/lSinfo -r
  212.                   OPT=`cat /tmp/lSinfo`
  213.                   OPT=`expr "$OPT" : '.*"\(.*\)"'`
  214.               if [ $OPT -eq 2 ]
  215.               then
  216.                       KEYBOARD=""
  217.               fi
  218.             fi
  219.     elif [ "$PKGINSTALL_TYPE" = "UPGRADE" ]
  220.  
  221.     then
  222.         unset LOCALE
  223.         eval `grep -v KEYBOARD $UPGRADE_STORE/var/opt/els/config 2> /dev/null`
  224.         if [ $? = 0 ] && [ ! -z "$LOCALE" ] && 
  225.             [ ! -z "$FULL_LOC_SET" ] && [  ! -z "$LOCALE_SET" ]
  226.         then
  227.  
  228.             FL=`echo $FULL_LOC_SET`
  229.             LOCS=`echo $LOCALE_SET`
  230.             if [ "$FL" = "$LOCS" ]
  231.             then
  232.                 DOALL=YES
  233.             else
  234.                 DOALL=NO
  235.             fi
  236.             L=`egrep "!$LOCALE" $MENU_DIR/menu.ls2 | sed -e"s/!$LOCALE::.*//" | sed -e"s/.*\/\///"`
  237.             LANGUAGE=`echo $L | cut -f1 -d_`
  238.             TERR=`echo $L | cut -f2 -d_`
  239.             write_exit
  240.         fi
  241.     fi
  242. fi
  243.  
  244. # Change defaults/input new values.
  245. #
  246.  
  247.  
  248. #if [ "$KEYBOARD" = ""  ] ; then  
  249. #   unset KEYBOARD
  250.    menu -f $MENU_DIR/menu.ls1 -o /tmp/lSkeyboard -r
  251.    . /tmp/lSkeyboard
  252.    rm /tmp/lSkeyboard
  253.    export KEYBOARD
  254.    if [ "$KEYBOARD" = "NONE" ]
  255.    then
  256.     defadm keyboard KEYBOARD="C/US"
  257.    else
  258.        defadm keyboard KEYBOARD="$KEYBOARD"
  259.    fi
  260. #fi 
  261.  
  262. CODESET=`echo $KEYBOARD | cut -f1 -d/`
  263.  
  264.  
  265. case $CODESET in
  266.  
  267.      C)    MENU_TYPE=menu.ls2;;    
  268.     8859-1)    MENU_TYPE=menu.ls2;;
  269.     8859-2) MENU_TYPE=menu.ls3;;
  270.     8859-5) MENU_TYPE=menu.ls4;;
  271.     8859-7) MENU_TYPE=menu.ls5;;
  272.     8859-9) MENU_TYPE=menu.ls6;;
  273.     *)    ;;
  274.  
  275. esac
  276.  
  277.  
  278. menu -r -f $MENU_DIR/$MENU_TYPE -o /tmp/lScountry
  279.  
  280. . /tmp/lScountry
  281. rm /tmp/lScountry
  282. LOCALE=`echo $L | cut -f2 -d!`
  283. LANGUAGE=`echo $L | cut -f1 -d! | cut -f1 -d_`
  284. TERR=`echo $L | cut -f1 -d! | cut -f2 -d_`
  285. # All input processed - leave.
  286.  
  287. write_exit
  288.