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

  1. # @(#)request    1.2
  2. #     Client kit request script
  3. #
  4. #    Prompts user for the location to store client disk images.
  5. #
  6. #     Uses the set_strings file from nws
  7.  
  8. #
  9.  
  10. # This script must be executed from the nws or nwsJ  request script.
  11. if [ "$CONFFLAG" = "" ]
  12. then
  13.     XXSETNAME=""
  14.     [ $PKGINST = nwsclntJ ] && XXSETNAME=J
  15.     echo "\tPlease install the set:\
  16.           \n\tNetWare Server for UnixWare Set (nws$XXSETNAME)\
  17.           \n\tto install $PKGINST"
  18.     exit 3
  19. fi
  20.  
  21. if [ "$RANDOM" = "$RANDOM" ]
  22. then
  23.     exec /usr/bin/winxksh $0 $*
  24. fi
  25.  
  26. trap "" 2
  27.  
  28. exec 2> /tmp/nwsclnt.err
  29.  
  30. POST_FILE=$1
  31.  
  32.  
  33. CLIENT_OS_1="MS-DOS/WIN"
  34. CLIENT_OS_2="OS/2"
  35. CLIENT_OS_3="MS-DOS/WIN AND OS/2"
  36.  
  37. # Location of client files in package REQDIR + this directory
  38. IMAGES_PATH="/NWClient"
  39. CLIENT_OS=$CLIENT_OS_1
  40. CLASSES="none doswin"
  41.  
  42.  
  43.  
  44. #-------------------------------------------------------------------------------
  45. # DoIt
  46. #
  47. #    Prompt for location of diskette images
  48. #    Default: /NWClient
  49. #
  50. function DoIt
  51. {
  52. [ -n "$DEBUG" ] && set -x
  53.  
  54.     integer        infoWindow thisWindow thisForm inputXLoc
  55.  
  56.     WINPARMS="-below 0 -border_fg $BLACK -fg $BLACK -bg $CYAN"
  57.  
  58.     #
  59.     # display info window
  60.     #
  61.     display "$C_CLIENT_INFO_WIN" -fg ${WHITE} -bg ${BLUE} -below 4
  62.     infoWindow=${CURWIN}
  63.  
  64. #------------------ BEGIN FORM ----------------------
  65.  
  66.     let inputXLoc=${#C_IMAGES_PATH_PROMPT}+2
  67.  
  68.     open_form
  69.     thisForm=${FID}
  70.  
  71.     #
  72.     # Location of diskette images
  73.     #
  74.  
  75.     add_field CLIENT_OS -ilen 19 -p "$C_CLIENT_OS_PATH_PROMPT" \
  76.         -px 0 -py 1 \
  77.         -pfg ${BLACK} -pbg ${CYAN} -ix $inputXLoc -iy 1 \
  78.         -choice "ChooseClientOS" \
  79.         -entry "footer '$CLNT_FORM_MSG_OS'" \
  80.         -help "helpwin clientOS" \
  81.         -exit "CheckClientOS"
  82.  
  83.     add_field IMAGES_PATH -ilen 60 -p "$C_IMAGES_PATH_PROMPT" \
  84.         -px 0 -py 2 \
  85.         -pfg ${BLACK} -pbg ${CYAN} -ix $inputXLoc -iy 2 \
  86.         -entry "footer '$FORM_MSG'" \
  87.         -help "helpwin clientDir" \
  88.         -exit "CheckImageLoc"
  89.  
  90.     WINTITLE="$C_CLIENT_MENU_TITLE"
  91.  
  92.     place_window 80 2+2 \
  93.         -title "$WINTITLE" \
  94.         -border_fg $BLACK -bg $CYAN \
  95.         -below 0
  96.  
  97.     thisWindow=${CURWIN}
  98.  
  99.     run_form ${thisForm}
  100.  
  101.     input_handler
  102.  
  103.     wclose ${thisWindow}
  104.     destroy_form ${thisForm}
  105.  
  106. #------------------ END FORM ----------------------
  107.  
  108.     wclose ${infoWindow}    # close info window
  109.  
  110.     footer ""
  111.  
  112.     return 0
  113. }
  114.  
  115. function ChooseClientOS
  116. {
  117. [ -n "$DEBUG" ] && set -x
  118.  
  119.     set -A osChoices "$CLIENT_OS_1" "$CLIENT_OS_2" "$CLIENT_OS_3"
  120.  
  121.     CHOOSE_TITLE=$C_CLIENT_OS_CHOOSE_TITLE
  122.     CHOOSE_FOOTER=$GENERIC_CHOOSE_FOOTER
  123.  
  124.     choose -f "" "${osChoices[@]}"
  125.  
  126.     return 0
  127. }
  128.  
  129. function CheckClientOS
  130. {
  131. [ -n "$DEBUG" ] && set -x
  132.  
  133.     typeset -u OS
  134.  
  135.     OS=$CLIENT_OS
  136.  
  137.     if [ "$OS" != "$CLIENT_OS_1" ]
  138.     then
  139.         if [ "$OS" != "$CLIENT_OS_2" ]
  140.         then
  141.             if [ "$OS" != "$CLIENT_OS_3" ]
  142.             then
  143.                 display -w "$C_ILL_CLIENT_OS" \
  144.                     -fg ${WHITE} -bg ${RED} \
  145.                     -current "footer $ENTER_TO_CONT_MSG"
  146.                 return 1
  147.             fi
  148.         fi
  149.     fi
  150.  
  151.     if [ "$OS" = "$CLIENT_OS_1" ]
  152.     then
  153.         CLASSES="none doswin"    
  154.     elif [ "$OS" = "$CLIENT_OS_2" ]
  155.     then
  156.         CLASSES="none os2"    
  157.     else
  158.         CLASSES="none doswin os2"    
  159.     fi
  160.     
  161.     return 0
  162. }
  163.  
  164. function CheckImageLoc
  165. {
  166. [ -n "$DEBUG" ] && set -x
  167.  
  168.     typeset tmp
  169.  
  170.     tmp=`echo "$IMAGES_PATH" | cut -c1`
  171.     if [ "$tmp" != "/" ]
  172.     then
  173.         display -w "$C_INCORRECT_IMAGE_PATH" \
  174.             -fg ${WHITE} -bg ${RED} \
  175.             -current "footer $ENTER_TO_CONT_MSG"
  176.         return 1
  177.     fi
  178.  
  179.     if [[ ! -d $IMAGES_PATH && -a $IMAGES_PATH ]]
  180.     then
  181.         display -w "$C_IMAGE_PATH_IS_FILE" \
  182.             -fg ${WHITE} -bg ${RED} \
  183.             -current "footer $ENTER_TO_CONT_MSG"
  184.         return 1
  185.     fi
  186.  
  187.  
  188.     return 0
  189. }
  190.  
  191. #-------------------------------------------------------------------------------
  192.  
  193. function WritePostFile
  194. {
  195. [ -n "$DEBUG" ] && set -x
  196.  
  197.     {
  198.         echo IMAGES_PATH="$IMAGES_PATH"
  199.         echo CLIENT_OS="\"$CLIENT_OS\""
  200.         echo CLASSES="\"$CLASSES\""
  201.         echo SMART_START=$SMART_START
  202.     } > ${POST_FILE}
  203.  
  204.     return 0
  205. }
  206.  
  207. function ReadPostFile
  208. {
  209. [ -n "$DEBUG" ] && set -x
  210.     
  211.     if [ -f ${POST_FILE} ]
  212.     then
  213.         . ${POST_FILE}
  214.     fi
  215.  
  216.     return 0
  217. }
  218.  
  219.  
  220. #===============================================================================
  221. # Main()
  222. #
  223. [ -n "$DEBUG" ] && set -x
  224.  
  225. . $REQDIR/misc_func        # read in support functions
  226.  
  227. SetLocale
  228.  
  229. . ${LANGDEP_SCRIPTS}/set_strings        # load strings
  230.  
  231. if (( $CONFFLAG == 1 )) # user has selected to run configuration scripts
  232. then
  233.     # Initialize winxksh
  234.     . /usr/lib/winxksh/winrc
  235.     . /usr/lib/winxksh/scr_init
  236.     . /etc/dcu.d/menus/choose
  237.     ReadPostFile
  238.     DoIt
  239. else        # user not solicited for input "accept all and install"
  240.     ReadPostFile
  241. fi
  242.  
  243. CreateUsersAndGroups
  244. WritePostFile
  245.  
  246. exit 0
  247.