home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / nws / install / request < prev    next >
Text File  |  1998-08-19  |  16KB  |  854 lines

  1. # @(#)request    1.4
  2. # $Novell-NWU: $Header: /proj6/ncps/nwu_top/nws/pkg/unixware/nws/request,v 1.2 1996/04/06 00:05:20 vtag Exp $
  3. # nws set request script 
  4. # L000    28th Oct 1997
  5. #    Redirect errors to /tmp/nws.err only when the graphics screen is 
  6. #    initialised
  7. #
  8.  
  9. if [ "$RANDOM" = "$RANDOM" ]
  10. then
  11.     exec /usr/bin/winxksh $0 $*
  12. fi
  13.  
  14. # L000 vvv
  15. # exec 2> /tmp/nws.err
  16. # L000 ^^^
  17.  
  18. [ -n "$DEBUG" ] && set -x
  19.  
  20. RM="/usr/bin/rm -f"
  21. CP="/usr/bin/cp"
  22.  
  23. # If /tmp/unixware.dat exists then this is presumed to be a 
  24. # SMART_START installation so we set the SMART_START variable.
  25. # If SMART_START is "TRUE" we do a silent install for the whole
  26. # set (user input is not solicited).
  27. #
  28. # This is the REAL THING (see test below)
  29. SMART_START="FALSE"
  30. umount /mnt 2> /dev/null
  31. mount -F dosfs /dev/dsk/c0b0t0d0p1 /mnt 2> /dev/null
  32. if [ "$?" = "0" ]        # if mounted successfully
  33. then
  34.     if [ -s /mnt/unixware.dat ]
  35.     then
  36.         SMART_START="TRUE"
  37.         . /mnt/unixware.dat        # get NWS_UPGRADE_KEY and IPX_INTERNAL_NETWORK
  38.         SS_IPX_INTERNAL_NETWORK=$IPX_INTERNAL_NETWORK # kludge, change later
  39.  
  40.         # unlock license file and put in /etc/netware/licenses
  41.         $CP $REQDIR/enabler /tmp/enabler
  42.         /usr/bin/chmod +x /tmp/enabler
  43.         /tmp/enabler $NWS_UPGRADE_KEY "/mnt/tmp/license.nws"    2>/dev/null
  44.     fi
  45. fi
  46. umount /mnt 2> /dev/null
  47.  
  48. # This is a TEST (see above)
  49. #        SMART_START="FALSE"
  50. #    if [ -s /tmp/unixware.dat ]
  51. #    then
  52. #        SMART_START="TRUE"
  53. #        . /tmp/unixware.dat        # get NWS_UPGRADE_KEY and IPX_INTERNAL_NETWORK
  54. #        SS_IPX_INTERNAL_NETWORK=$IPX_INTERNAL_NETWORK # kludge, change later
  55. #        enabler $NWS_UPGRAGE_KEY "/mnt/tmp/nwslicense"    2>/dev/null
  56. #    fi
  57.  
  58.  
  59. POST_FILE=$1
  60. SETREQDIR=$REQDIR
  61.  
  62. #
  63. # For running standalone test
  64. #
  65. if [ "$2" = "test" ]
  66. then
  67.     REQDIR=.
  68.     SETINFO=setinfo
  69.     SETREQDIR=..
  70. fi
  71.  
  72. TMP_SERVER_PARMS="/tmp/server.parms"
  73. TMP_VOLTAB="/tmp/voltab"
  74. TMP_PKGDEF="/tmp/pkgdef"
  75.  
  76. #
  77. # If this script exits normally or if DEL is pressed, make sure
  78. # we exit 77 so pkgadd knows no packages were selected
  79. #
  80. trap "" 2
  81. trap `exit $EXITCODE` 0
  82.  
  83. function WritePostFile
  84. {
  85. [ -n "$DEBUG" ] && set -x
  86.  
  87.     {
  88.         echo SMART_START="$SMART_START"
  89.         echo LASTPKG="$LASTPKG"
  90.     } > $POST_FILE
  91.  
  92.     # The response file is not being propagated to the postinstall
  93.     # phase. We'll copy the response file to a temporary file, and
  94.     # then dot in the temporary file in the postinstall script.
  95.     /usr/bin/cp $POST_FILE /tmp/nws.response
  96.  
  97.     return 0
  98. }
  99.  
  100. #
  101. # This function sets the proper locale.
  102. #
  103. # Related function: SetLocale
  104. #
  105. function InitLocale
  106. {
  107. [ -n "$DEBUG" ] && set -x
  108.  
  109.     # There is a prescribed list of LOCALE variables to check.
  110.     # If none are set coming in to this request script, then
  111.     # default to the C locale.
  112.     LOCALE=${LC_ALL:-${LC_MESSAGES:-${LANG:-C}}}
  113.  
  114.     # Set environment variable to find help (.hcf) and strings files
  115.     # in the proper locale.
  116.     LANGDEP_SCRIPTS=/etc/inst/locale/${LOCALE}/menus/nws
  117.  
  118.     # Set C locale environment variable for help and strings files.
  119.     C_LANGDEP_SCRIPTS=/etc/inst/locale/C/menus/nws
  120.  
  121.     # Make the C locale scripts and directories
  122.     /usr/bin/mkdir -p ${C_LANGDEP_SCRIPTS}/help > /dev/null 2>&1
  123.  
  124.     # Copy C locale files to use as backup if there is a problem with
  125.     # the real locale.
  126.     /usr/bin/cp $REQDIR/set_strings ${C_LANGDEP_SCRIPTS}
  127.     /usr/bin/cp $REQDIR/help/*.hcf ${C_LANGDEP_SCRIPTS}/help
  128.  
  129.     # Revert to the C locale for help and strings files if the
  130.     # desired locale is not installed.
  131.     if [ ! -d ${LANGDEP_SCRIPTS} ] 
  132.     then
  133.         LANGDEP_SCRIPTS=${C_LANGDEP_SCRIPTS}
  134.     fi
  135.  
  136.     return 0
  137. }
  138.  
  139. function ReadDefaultPackages
  140. {
  141.     let PKGCNT=0
  142.     while read pkginst parts default category package_name
  143.     do
  144.         pkgName[$PKGCNT]="$package_name"
  145.         pkgInst[$PKGCNT]="$pkginst"
  146.         pkgDef[$PKGCNT]="$default"
  147.         let PKGCNT=PKGCNT+1
  148.     done < $SETINFO
  149.  
  150.     return 0
  151. }
  152.  
  153. function GetDefaultPackages
  154. {
  155. [ -n "$DEBUG" ] && set -x
  156.  
  157.     ReadDefaultPackages
  158.     MakePackageList
  159.  
  160.     # Write package selection to file for the case when the
  161.     # user wants to view or change package selection.
  162.     $RM $TMP_PKGDEF
  163.     let i=0;
  164.     while [ $i -lt $PKGCNT ]
  165.     do
  166.         echo "${pkgDef[$i]}" >> $TMP_PKGDEF
  167.         let i=i+1
  168.     done
  169.  
  170.     return 0
  171. }
  172.  
  173. function MakePackageList
  174. {
  175. [ -n "$DEBUG" ] && set -x
  176.  
  177.     PKGLIST=""
  178.     let i=0
  179.     let NWS_PACKAGE_SELECTED=0
  180.     let CLIENT_PACKAGE_SELECTED=0
  181.     let WINV_PACKAGE_SELECTED=0
  182.     let DOC_PACKAGE_SELECTED=0
  183.     let DOC_JA_PACKAGE_SELECTED=0
  184.     let DOC_FR_PACKAGE_SELECTED=0
  185.     let DOC_IT_PACKAGE_SELECTED=0
  186.     let DOC_DE_PACKAGE_SELECTED=0
  187.     let DOC_ES_PACKAGE_SELECTED=0
  188.     while [ $i -lt $PKGCNT ]
  189.     do
  190.         if [ "${pkgDef[$i]}" = "y" ]
  191.         then
  192.             PKGLIST="$PKGLIST ${pkgInst[$i]}"
  193.             if [ "${pkgInst[$i]}" == "nwsrvr" ]
  194.             then
  195.                 let NWS_PACKAGE_SELECTED=1
  196.             fi
  197.             if [ "${pkgInst[$i]}" == "nwsclnt" ]
  198.             then
  199.                 let CLIENT_PACKAGE_SELECTED=1
  200.             fi
  201.             if [ "${pkgInst[$i]}" == "nwswinv" ]
  202.             then
  203.                 let WINV_PACKAGE_SELECTED=1
  204.             fi
  205.             if [ "${pkgInst[$i]}" == "NWSdocs" ]
  206.             then
  207.                 let DOC_PACKAGE_SELECTED=1
  208.             fi
  209.             if [ "${pkgInst[$i]}" == "jaNWSdocs" ]
  210.             then
  211.                 let DOC_JA_PACKAGE_SELECTED=1
  212.             fi
  213.             if [ "${pkgInst[$i]}" == "frNWSdocs" ]
  214.             then
  215.                 let DOC_FR_PACKAGE_SELECTED=1
  216.             fi
  217.             if [ "${pkgInst[$i]}" == "itNWSdocs" ]
  218.             then
  219.                 let DOC_IT_PACKAGE_SELECTED=1
  220.             fi
  221.             if [ "${pkgInst[$i]}" == "deNWSdocs" ]
  222.             then
  223.                 let DOC_DE_PACKAGE_SELECTED=1
  224.             fi
  225.             if [ "${pkgInst[$i]}" == "esNWSdocs" ]
  226.             then
  227.                 let DOC_ES_PACKAGE_SELECTED=1
  228.             fi
  229.         fi
  230.         let i=i+1
  231.     done
  232.  
  233.     return 0
  234. }
  235.  
  236. #
  237. #     Display the following packages:
  238. #
  239. #        NetWare Server for UnixWare (nwsrvr)
  240. #        Client Kit                    (nwsclnt)
  241. #        Windows Viewer                (NWSwinv)
  242. #        Documentation                (NWSdocs)
  243. #        Documentation                (jaNWSdocs)
  244. #        Documentation                (frNWSdocs)
  245. #        Documentation                (itNWSdocs)
  246. #        Documentation                (deNWSdocs)
  247. #        Documentation                (esNWSdocs)
  248. #
  249. #     Other packages not displayed:
  250. #
  251. #
  252. function SelectPackages
  253. {
  254. [ -n "$DEBUG" ] && set -x
  255.  
  256.     typeset winparms="-below 0 -border_fg $BLACK -fg $BLACK -bg $CYAN"
  257.     integer i tmpWindow
  258.  
  259.     display "${PKG_PARMS_INFO_WIN}" \
  260.         -fg ${WHITE} -bg ${BLUE} \
  261.         -below 5
  262.     tmpWindow=${CURWIN}
  263.  
  264.     ReadDefaultPackages
  265.  
  266.     open_check
  267.  
  268.     case $1 in
  269.     "default")
  270.         let i=0
  271.         while [ $i -lt $PKGCNT ]
  272.         do
  273.             if [ "${pkgDef[$i]}" = "y" ]
  274.             then
  275.                 ACTIVE="-is_selected"
  276.             else
  277.                 ACTIVE=""
  278.             fi
  279.  
  280.             add_check "${pkgName[$i]}" $ACTIVE -entry "CURPKG=$i" \
  281.                 -on 'pkgDef[$CURPKG]="y"' -off 'pkgDef[$CURPKG]="n"'
  282.  
  283.             let i=i+1
  284.         done
  285.         ;;
  286. #    "all")
  287. #        let i=0
  288. #        while [ $i -lt $PKGCNT ]
  289. #        do
  290. #            pkgDef[$i]="y"
  291. #            add_check "${pkgName[$i]}" -is_selected -entry "CURPKG=$i" \
  292. #                -on 'pkgDef[$CURPKG]="y"' -off 'pkgDef[$CURPKG]="n"'
  293. #            let i=i+1
  294. #        done
  295. #        ;;
  296.     "last")
  297.         let i=0
  298.         while read default
  299.         do
  300.             pkgDef[$i]="$default"
  301.             if [ "${pkgDef[$i]}" = "y" ]
  302.             then
  303.                 ACTIVE="-is_selected"
  304.             else
  305.                 ACTIVE=""
  306.             fi
  307.             add_check "${pkgName[$i]}" $ACTIVE -entry "CURPKG=$i" \
  308.                 -on 'pkgDef[$CURPKG]="y"' -off 'pkgDef[$CURPKG]="n"'
  309.             let i=i+1
  310.         done < $TMP_PKGDEF
  311.         ;;
  312.     esac
  313.  
  314.     check_runparms $CID $i
  315.  
  316. #    place_window 80 windowSize \
  317. #        -title "$WINTITLE" \
  318. #        -border_fg $BLACK -bg $CYAN \
  319. #        -below 0 \
  320. #        -current "footer '$FORM_MSG'"
  321. #    place_window $CHECK_WIN_WIDTH $CHECK_WIN_HEIGHT $winparms -current 'footer "$CHECK_FOOTER"' -title "$CHECK_WIN_TITLE" -below 0
  322.  
  323.     place_window $CHECK_WIN_WIDTH 5 $winparms -current 'footer "$CHECK_FOOTER"' -title "$CHECK_WIN_TITLE" -below 0
  324.  
  325.     set_hotkey 1 'helpwin package'
  326.  
  327.     set_hotkey 6 'footer "$GENERIC_WAIT_MSG"; wclose $CURWIN; SelectPackages default'
  328.  
  329.     run_check $CID 0 $CHECK_ROWS
  330.  
  331.     input_handler
  332.  
  333.     MakePackageList
  334.  
  335.     # Write package selection to file for the case when the
  336.     # user wants to view or change package selection.
  337.     $RM $TMP_PKGDEF
  338.     let i=0;
  339.     while [ $i -lt $PKGCNT ]
  340.     do
  341.         echo "${pkgDef[$i]}" >> $TMP_PKGDEF
  342.         let i=i+1
  343.     done
  344.  
  345.     wclose ${tmpWindow}
  346.  
  347.     return 0
  348. }
  349.  
  350. function WriteSetList
  351. {
  352. [ -n "$DEBUG" ] && set -x
  353.  
  354.     for PKG in $PKGLIST
  355.     do
  356.         echo "$PKG" >>$SETLIST
  357.     done
  358.  
  359.     return 0
  360. }
  361.  
  362. function InstallScreen2
  363. {
  364. [ -n "$DEBUG" ] && set -x
  365.  
  366.     integer        infoWindow
  367.     integer        active
  368.     typeset     winparms="-below 0 -border_fg $BLACK -fg $BLACK -bg $CYAN"
  369.     
  370.     let active=0
  371.  
  372.     while (( $DONE == 0 ))
  373.     do
  374.         #
  375.         # display install menu info screen
  376.         #
  377.         display "$INSTALL_MAIN_MENU_INFO_WIN" \
  378.             -fg ${WHITE} -bg ${BLUE} \
  379.             -below 5
  380.         infoWindow=$CURWIN
  381.  
  382.         CHOOSE_TITLE="$CHOOSE_MAIN_TITLE"
  383.         CHOOSE_FOOTER="$ARROW_KEYS_MSG"
  384.  
  385.         set -A ARY
  386.         let i=0
  387.  
  388.         ARY[$i]="$ACCEPT_AND_INSTALL"
  389.         let i=i+1
  390.  
  391.         ARY[$i]="$VIEW_CHG_DEFAULT_CONFIG"
  392.         let i=i+1
  393.  
  394.         ARY[$i]="$GO_BACK"
  395.         let i=i+1
  396.  
  397.         CURRENT=${ARY[$active]}
  398.         choose -e -f -winparms "$winparms" "$CURRENT" "${ARY[@]}"
  399.  
  400.         set_hotkey 1 'helpwin main_menu'
  401.  
  402.         input_handler
  403.  
  404.         wclose $infoWindow
  405.  
  406.         case "$CHOICE" in
  407.         "$ACCEPT_AND_INSTALL")
  408.             DONE=1
  409.             ;;
  410.         "$VIEW_CHG_DEFAULT_CONFIG")
  411.             InstallScreen3
  412.             let active=0
  413.             ;;
  414.         "$GO_BACK")
  415.             return 0
  416.             ;;
  417.         esac
  418.  
  419.         footer ""
  420.     done
  421.  
  422.     return 0
  423. }
  424.  
  425. function InstallScreen3
  426. {
  427. [ -n "$DEBUG" ] && set -x
  428.  
  429.  
  430.     SelectPackages last
  431.  
  432.     if [ $NWS_PACKAGE_SELECTED = 1 ]
  433.     then
  434.         RunRequest nwsrvr configure
  435.     fi
  436.  
  437.     if [ $CLIENT_PACKAGE_SELECTED = 1 ]
  438.     then
  439.         RunRequest nwsclnt configure
  440.     fi
  441.  
  442.     if [ $WINV_PACKAGE_SELECTED = 1 ]
  443.     then
  444.         RunRequest nwswinv configure
  445.     fi
  446.  
  447.     if [ $DOC_PACKAGE_SELECTED = 1 ]
  448.     then
  449.         # Setup for NWSdocs package screen handling (menu)
  450.         # first close out winXksh
  451.         ClearScreen
  452.         call endwin
  453.             
  454.         RunRequest NWSdocs configure
  455.  
  456.         # Re-initialize screen for winxksh
  457.         . /usr/lib/winxksh/scr_init
  458.     fi
  459.  
  460.     if [ $DOC_JA_PACKAGE_SELECTED = 1 ]
  461.     then
  462.         # Setup for NWSdocs package screen handling (menu)
  463.         # first close out winXksh
  464.         ClearScreen
  465.         call endwin
  466.             
  467.         RunRequest jaNWSdocs configure
  468.  
  469.         # Re-initialize screen for winxksh
  470.         . /usr/lib/winxksh/scr_init
  471.     fi
  472.  
  473.     if [ $DOC_FR_PACKAGE_SELECTED = 1 ]
  474.     then
  475.         # Setup for NWSdocs package screen handling (menu)
  476.         # first close out winXksh
  477.         ClearScreen
  478.         call endwin
  479.             
  480.         RunRequest frNWSdocs configure
  481.  
  482.         # Re-initialize screen for winxksh
  483.         . /usr/lib/winxksh/scr_init
  484.     fi
  485.  
  486.     if [ $DOC_IT_PACKAGE_SELECTED = 1 ]
  487.     then
  488.         # Setup for NWSdocs package screen handling (menu)
  489.         # first close out winXksh
  490.         ClearScreen
  491.         call endwin
  492.             
  493.         RunRequest itNWSdocs configure
  494.  
  495.         # Re-initialize screen for winxksh
  496.         . /usr/lib/winxksh/scr_init
  497.     fi
  498.  
  499.     if [ $DOC_DE_PACKAGE_SELECTED = 1 ]
  500.     then
  501.         # Setup for NWSdocs package screen handling (menu)
  502.         # first close out winXksh
  503.         ClearScreen
  504.         call endwin
  505.             
  506.         RunRequest deNWSdocs configure
  507.  
  508.         # Re-initialize screen for winxksh
  509.         . /usr/lib/winxksh/scr_init
  510.     fi
  511.  
  512.     if [ $DOC_ES_PACKAGE_SELECTED = 1 ]
  513.     then
  514.         # Setup for NWSdocs package screen handling (menu)
  515.         # first close out winXksh
  516.         ClearScreen
  517.         call endwin
  518.             
  519.         RunRequest esNWSdocs configure
  520.  
  521.         # Re-initialize screen for winxksh
  522.         . /usr/lib/winxksh/scr_init
  523.     fi
  524.  
  525.     return 0
  526. }
  527.  
  528. function RunAllRequestScripts
  529. {
  530.     #
  531.     # Run request scripts for packages selected
  532.     #
  533.     for PKG in $PKGLIST
  534.     do
  535.         if [ "$PKG" = "nwsrvr" ]
  536.         then
  537.             RunRequest nwsrvr install
  538.             continue
  539.         fi
  540.  
  541.         if [ "$PKG" = "nwsclnt" ]
  542.         then
  543.             RunRequest nwsclnt install
  544.             continue
  545.         fi
  546.  
  547.         if [ "$PKG" = "nwswinv" ]
  548.         then
  549.             RunRequest nwswinv install
  550.             continue
  551.         fi
  552.  
  553.         if [ "$PKG" = "NWSdocs" ]
  554.         then
  555.             # Copy default response file if a custom response file
  556.             # doesn't exist. A custom response file is created when
  557.             # the "View or change doc parameters" menu item is entered.
  558.             # If that menu item isn't entered, we will need to copy
  559.             # over the default response.
  560.             if [ ! -f $RESPDIR/$PKG ]
  561.             then
  562.                 $CP $SETREQDIR/$PKG/response $RESPDIR/$PKG
  563.             fi
  564.             continue
  565.         fi
  566.  
  567.         if [ "$PKG" = "jaNWSdocs" ]
  568.         then
  569.             if [ ! -f $RESPDIR/$PKG ]
  570.             then
  571.                 $CP $SETREQDIR/$PKG/response $RESPDIR/$PKG
  572.             fi
  573.             continue
  574.         fi
  575.  
  576.         if [ "$PKG" = "frNWSdocs" ]
  577.         then
  578.             if [ ! -f $RESPDIR/$PKG ]
  579.             then
  580.                 $CP $SETREQDIR/$PKG/response $RESPDIR/$PKG
  581.             fi
  582.             continue
  583.         fi
  584.  
  585.         if [ "$PKG" = "itNWSdocs" ]
  586.         then
  587.             if [ ! -f $RESPDIR/$PKG ]
  588.             then
  589.                 $CP $SETREQDIR/$PKG/response $RESPDIR/$PKG
  590.             fi
  591.             continue
  592.         fi
  593.  
  594.         if [ "$PKG" = "deNWSdocs" ]
  595.         then
  596.             if [ ! -f $RESPDIR/$PKG ]
  597.             then
  598.                 $CP $SETREQDIR/$PKG/response $RESPDIR/$PKG
  599.             fi
  600.             continue
  601.         fi
  602.  
  603.         if [ "$PKG" = "esNWSdocs" ]
  604.         then
  605.             if [ ! -f $RESPDIR/$PKG ]
  606.             then
  607.                 $CP $SETREQDIR/$PKG/response $RESPDIR/$PKG
  608.             fi
  609.             continue
  610.         fi
  611.  
  612.     done
  613.  
  614.     return 0
  615. }
  616.  
  617. function RunRequest
  618. {
  619. [ -n "$DEBUG" ] && set -x
  620.  
  621.     PKGNAME=$1
  622.     CONFIGNAME=$2
  623.  
  624.     case $CONFIGNAME in
  625.     "configure")
  626.         CONFFLAG=1
  627.         ;;
  628.     "install")
  629.         CONFFLAG=3
  630.     esac
  631.  
  632.     if [ -f $SETREQDIR/$PKGNAME/request ]
  633.     then
  634.             # Mark vars yet to be set to be automatically exported
  635.             set -a
  636.             pkgparam -v -f $SETREQDIR/${PKGNAME}/pkginfo > /tmp/params.$$
  637.             . /tmp/params.$$; rm /tmp/params.$$
  638.             
  639.             PKGINST=$PKGNAME    # reset PKGINST to set member PKG inst
  640.  
  641.             # Shell variables will be set only while running request script.
  642.             REQDIR=${SETREQDIR}/${PKGNAME} \
  643.             CONFFLAG=$CONFFLAG \
  644.             TMP_SERVER_PARMS=$TMP_SERVER_PARMS \
  645.             TMP_VOLTAB=$TMP_VOLTAB \
  646.             SMART_START=$SMART_START \
  647.             sh $SETREQDIR/$PKGNAME/request $RESPDIR/$PKGNAME
  648.  
  649.             [ "$?" != "0" ] && {
  650.                 GoodBye 1
  651.             }
  652.     fi
  653.  
  654.     return 0
  655. }
  656.  
  657. #
  658. #==============================================================================
  659. #
  660.  
  661. #
  662. # This function is executed through pkgadd install.
  663. #
  664. function InstallScreen1
  665. {
  666. [ -n "$DEBUG" ] && set -x
  667.  
  668.     typeset -i mainMenuCurrentChoice=0
  669.     typeset -i tmpWindow
  670.     typeset winparms="-below 0 -border_fg $BLACK -fg $BLACK -bg $CYAN"
  671.  
  672.     DONE=0
  673.  
  674.     GetDefaultPackages
  675.  
  676.     while (( $DONE == 0 )) 
  677.     do
  678.  
  679.         display "$WELCOME_MSG" \
  680.             -fg ${WHITE} -bg ${BLUE} \
  681.             -below 4
  682.         tmpWindow=${CURWIN}
  683.  
  684.         CHOOSE_TITLE="$CHOOSE_PREINSTALL_TITLE"
  685.         CHOOSE_FOOTER="$ARROW_KEYS_MSG"
  686.  
  687.         case $mainMenuCurrentChoice in
  688.         0)
  689.             active="$LEARN_INSTALL_MENU_ITEM"
  690.             ;;
  691.         1)
  692.             active="$VIEW_PREQ_MENU_ITEM"
  693.             ;;
  694.         2)
  695.             active="$CONTINUE_INSTALLATION"
  696.             ;;
  697.         esac
  698.         
  699.         choose -e -f -winparms "$winparms" "$active" "$LEARN_INSTALL_MENU_ITEM" "$VIEW_PREQ_MENU_ITEM" "$CONTINUE_INSTALLATION" "$ABORT_MENU_ITEM"
  700.  
  701.         set_hotkey 1 'helpwin intro'
  702.  
  703.         input_handler
  704.  
  705.         wclose $tmpWindow
  706.  
  707.         case "$CHOICE" in
  708.         "$LEARN_INSTALL_MENU_ITEM")
  709.             ViewInfo learn
  710.             mainMenuCurrentChoice=1
  711.             ;;
  712.         "$VIEW_PREQ_MENU_ITEM")
  713.             ViewInfo prereq
  714.             mainMenuCurrentChoice=2
  715.             ;;
  716.         "$CONTINUE_INSTALLATION")
  717.             InstallScreen2
  718.             ;;
  719.         "$ABORT_MENU_ITEM")
  720.             EXITCODE=77
  721.             GoodBye 1
  722.             ;;
  723.         esac
  724.  
  725.         footer ""
  726.  
  727.     done
  728.  
  729.     return 0
  730. }
  731.  
  732. #
  733. # This function is executed through Compaq SMART_START Silent Install
  734. #
  735. function DoSilent
  736. {
  737. [ -n "$DEBUG" ] && set -x
  738.  
  739.     ReadDefaultPackages
  740.  
  741.     MakePackageList
  742.  
  743.     RunAllRequestScripts
  744.     [ $? != 0 ] && {
  745.         exit 1
  746.     }
  747.  
  748.     return 0
  749. }
  750.  
  751. function CheckPreinstall
  752. {
  753.     TMP=`ps -ef|grep "NWS"|wc -l`
  754.     if [ $TMP -gt 2 ]
  755.     then
  756.         footer "$HIT_ANY_KEY_TO_END"
  757.         display -w "$STOP_SERVER_TO_INSTALL" \
  758.             -fg ${WHITE} -bg ${RED}
  759.         input_handler
  760.         GoodBye 3
  761.     fi
  762. }
  763.  
  764.  
  765. #
  766. # Main() ================================================================
  767. #
  768.  
  769. [ -n "$DEBUG" ] && set -x
  770.  
  771. typeset -i ServerLicenseCount=0
  772. integer pkgCnt
  773.  
  774. # Initialize the locale environment variables
  775. # This must occur before dotting in misc_func
  776. InitLocale
  777.  
  778. # Dot in the strings file for the correct locale.
  779. . ${LANGDEP_SCRIPTS}/set_strings
  780.  
  781. if [ "$SMART_START" = "FALSE" ]
  782. then
  783.     # Initialize winxksh
  784.     . /usr/lib/winxksh/winrc
  785.     . /usr/lib/winxksh/scr_init
  786. #L000 vvv
  787. # If scr_init fails then the script will exit b4 getting here
  788.     exec 2> /tmp/nws.err
  789. #L000 ^^^
  790.     . /etc/dcu.d/menus/choose
  791. fi
  792.  
  793. # load misc functions
  794. . $REQDIR/misc_func
  795.  
  796. #
  797. # Make sure we comply with preinstall conditions
  798. #
  799. CheckPreinstall
  800.  
  801. # Remove old copies of tmp files
  802. $RM $TMP_SERVER_PARMS
  803. $RM $TMP_VOLTAB
  804. $RM $TMP_PKGDEF
  805.  
  806. #
  807. # if smart start we do not solicit input from the user at all.
  808. #
  809. if [ "$SMART_START" = "TRUE" ]
  810. then
  811.     DoSilent
  812. else
  813.     InstallScreen1
  814.     # If no packages were selected, There is no work to do.
  815.     if [ "$PKGLIST" = "" ]
  816.     then
  817.         # No packages were selected
  818.         ClearScreen
  819.         call endwin
  820.         echo "$NO_PACKAGES_SELECTED"
  821.         EXITCODE=77
  822.         exit 2
  823.     fi
  824.  
  825.     # Write a file to /tmp that indicates the last package
  826.     # The last package to be installed is in charge of displaying
  827.     # the final install screen.
  828.     # This file will be deleted in the postinstall
  829.     # This code is duplicated in the doSilent function
  830.     set $PKGLIST                # break into $1 $2 etc...
  831.     let pkgCnt=${#*}            # get number of packgages
  832.     set +A PKGS $PKGLIST        # put into array
  833.     LASTPKG=${PKGS[$pkgCnt-1]}
  834.     
  835.     # ENHANCEMENT, remove all possible package file names.
  836.  
  837.     if [ "${PKGS[0]}" = "nwsrvr" ]    # only add file if nwsrvr selected
  838.     then
  839.         touch /tmp/$LASTPKG
  840.     fi
  841.  
  842.     RunAllRequestScripts
  843.  
  844.     [ $? != 0 ] && {
  845.     GoodBye 1
  846.     }
  847. fi
  848.  
  849. WriteSetList
  850. WritePostFile
  851.  
  852. GoodBye 0
  853.