home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / visionfs / install / request < prev   
Text File  |  1998-08-19  |  37KB  |  1,554 lines

  1. #******************************************************************************
  2. #
  3. #    Copyright (C) 1995-1997 The Santa Cruz Operation, Inc.
  4. #        All Rights Reserved.
  5. #
  6. #    The information in this file is provided for the exclusive use of
  7. #    the licensees of The Santa Cruz Operation, Inc.  Such users have the
  8. #    right to use, modify, and incorporate this code into other products
  9. #    for purposes authorized by the license agreement provided they include
  10. #    this notice and the associated copyright notice with any such product.
  11. #    The information in this file is provided "AS IS" without warranty.
  12. #
  13. #===============================================================================
  14.  
  15.  
  16. ##########################################
  17. ##########################################
  18.  
  19.  
  20. # This script was built from shell library
  21. #   $Id: install.shlib,v 10.16.2.3 1997/02/11 19:58:19 tobyd Exp $
  22.  
  23. GLOB_VISION_FILE=/etc/vision.conf
  24. VISION_FILE=/etc/vision.conf
  25.  
  26. # be paranoid about the current path
  27. if [ -d /bin ]; then
  28.   PATH=/bin:$PATH
  29. fi
  30. if [ -d /sbin ]; then
  31.   PATH=/sbin:$PATH
  32. fi
  33. if [ -d /usr/bin ]; then
  34.   PATH=/usr/bin:$PATH
  35. fi
  36. if [ -d /usr/sbin ]; then
  37.   PATH=/usr/sbin:$PATH
  38. fi
  39. if [ -d /etc ]; then
  40.   PATH=/etc:$PATH
  41. fi
  42. export PATH
  43.  
  44. RESP_FILE=$1
  45.  
  46. INST_RCFILE=S90visionfs
  47.  
  48. # Version numbers
  49. PRODUCT_VERSION="2.01.901"
  50. PRODUCT_VERSION_FULL="2.01.901"
  51. PRODUCT_VERSION_MAJOR=2
  52. PRODUCT_VERSION_FEATURE=0
  53. PRODUCT_VERSION_BUG=1
  54. PRODUCT_VERSION_BUILD=901
  55.  
  56. # Product names
  57. PRODUCT_FULL_NAME="SCO VisionFS"
  58. PRODUCT_SHORT_NAME="VisionFS"
  59. PRODUCT_LOCKD_NAME="SCO VisionFS Lock Daemon"
  60. PRODUCT_NAMED_NAME="SCO VisionFS Name Server Daemon"
  61. PRODUCT_COMPONENTS_NAME="VisionFS Architecture"
  62.  
  63.  
  64. OK=0
  65. FAIL=1
  66. requestReturnVal=$OK
  67.  
  68. SAVE_FILE=/tmp/vfs.resp
  69.  
  70. c_custom=TRUE
  71.  
  72. ccsError()
  73. {
  74.     echo "$0: " $* 1>&2
  75. }
  76.  
  77. ccsWarning()
  78. {
  79.     echo "$0: " $* 1>&2
  80. }
  81.  
  82. showSummary()
  83. {
  84.     ## Present a summary of the answers before continuing
  85.     echo
  86. _tmp=`echo $PRODUCT_VERSION_FULL | sed -e 's/\([0-9][0-9]*\)\.\([0-9]\)\([0-9]\)\.\([0-9][0-9]*\)/\1 \2 \3 \4/'`
  87. read _major _feature _bug _build <<EOF
  88. $_tmp
  89. EOF
  90.  
  91. if [ $_build -lt 900 ]
  92. then
  93.   prettyver="$_major.$_feature$_bug.$_build"
  94. else
  95.   prettyver="$_major"
  96.   if [ $_bug -ne 0 ]
  97.   then
  98.     prettyver="$prettyver.$_feature$_bug"
  99.   else
  100.     if [ $_feature -ne 0 ]
  101.     then
  102.       prettyver="$prettyver.$_feature"
  103.     fi
  104.   fi
  105. fi
  106.  
  107.     summarystr="$l_summary $prettyver"
  108. echo $_ss_headlines
  109. echo $summarystr
  110. echo $_ss_headlines
  111.  
  112.     echo ""
  113.  
  114.     # state of existing profile
  115.     case "$c_upgrade" in
  116.       N)
  117.      # no existing profile
  118.      ;;
  119.       F)
  120.      # attempting to fix existing setup
  121.      echo "$q_deleteexisting = $a_deleteexisting"
  122.      echo ""
  123.      ;;
  124.       I)
  125.      # incompatible upgrade, a_deleteexisting should be yes
  126.      echo "$q_deleteexisting = $a_deleteexisting"
  127.      echo ""
  128.      ;;
  129.       B)
  130.      # upgrade from beta
  131.      echo "$q_installtype = $a_upgrade $setupver -> $PRODUCT_VERSION_FULL"
  132.      echo "$q_deleteexisting = $a_deleteexisting"
  133.      echo ""
  134.      ;;
  135.       C)
  136.      # compatible upgrade
  137.      if [ "$c_reinstall" = "true" ]; then
  138.        echo "$q_installtype = $a_reinstall $PRODUCT_VERSION_FULL"
  139.      else
  140.        echo "$q_installtype = $a_upgrade $setupver -> $PRODUCT_VERSION_FULL"
  141.      fi
  142.      echo "$q_deleteexisting = $a_deleteexisting"
  143.      echo ""
  144.      ;;
  145.       D)
  146.      # compatible downgrade
  147.      echo "$q_installtype = $a_downgrade $setupver -> $PRODUCT_VERSION_FULL"
  148.      echo "$q_deleteexisting = $a_deleteexisting"
  149.      echo ""
  150.      ;;
  151.     esac
  152.  
  153. #    $v_scrdir/license $a_licargs --summary 2>/dev/null
  154.  
  155.     # administrator
  156.     if [ "$c_upgrade" = "N" -o ! -z "$a_uadmin" ]; then
  157.       echo $N "$q_admin = $a_wadmin $C"
  158.       if [ ! -z "$a_uadmin" ]; then
  159.     echo "$l_onunix1$a_uadmin $l_onunix2"
  160.       else
  161.     echo "$l_sameonunix"
  162.       fi
  163.     else    
  164. tmpstr=`echo "$a_wadmin" | while read a_bit; do echo $a_bit,; done`
  165. adminlist=`echo $tmpstr | sed 's/,$//'`
  166.  
  167.       echo "$q_keepadmin = $a_keepadmin ($adminlist)"
  168.     fi
  169.  
  170.     # naming section
  171.     if [ "$a_addnaming" = "yes" -o "$c_install" = "true" ]; then
  172. tmpstr=`echo "$a_uniquenames" | while read a_bit; do echo $a_bit,; done`
  173. a_namelist=`echo $tmpstr | sed 's/,$//'`
  174.  
  175.       if [ "$a_keepnaming" = "yes" ]; then
  176.     echo "$q_uniquenames = $a_keepnaming ($a_namelist)"
  177.       else
  178.     echo "$q_servername = $a_namelist"
  179.       fi
  180.       if [ ! -z "$a_resetwg" ]; then
  181.     echo "$q_workgroup = $a_resetwg"
  182.       fi
  183.       echo ""
  184.     else
  185.       if [ "$a_deleteexisting" = "no" -a "$c_upgrade" = "F" ]; then
  186.     echo "$q_addnaming = $a_addnaming"
  187.       fi
  188.     fi
  189.  
  190.     # check the extra bits
  191.     if [ "$a_deleteexisting" = "no" -a "$c_upgrade" = "F" ]; then
  192.       echo "$q_addconnman = $a_addconnman"
  193.       echo "$q_addshare = $a_addshare"
  194.       echo "$q_adddirs = $a_adddirs"
  195.       echo "$q_addauth = $a_addauth"
  196.       echo ""
  197.     fi
  198.  
  199.     #  if [ "$c_custom" = "false" -a "$c_install" = "true" ]; then
  200.     # rc section
  201.     if [ "$a_rctype" != "unknown" ]
  202.     then
  203.       echo $N "$q_restart = $a_restart$C"
  204.       if [ "$a_restart" = "yes" -a "$a_runlevel" != "" ]; then
  205.     echo " ($q_runlevel = $a_runlevel)"
  206.       else
  207.     echo ""
  208.       fi
  209.     fi
  210.  
  211.     # crontab section
  212.     echo $N "$q_checkpoint = $a_checkpoint$C"
  213.     if [ "$a_checkpoint" = "yes" ]; then
  214.   case $a_day in
  215.     0 ) a_daystr="$l_sun";;
  216.     1 ) a_daystr="$l_mon";;
  217.     2 ) a_daystr="$l_tue";;
  218.     3 ) a_daystr="$l_wed";;
  219.     4 ) a_daystr="$l_thu";;
  220.     5 ) a_daystr="$l_fri";;
  221.     6 ) a_daystr="$l_sat";;
  222.   esac
  223.  
  224.       echo $N " ($a_daystr $C"
  225.       echo $N "$a_time$q_hours)$C"
  226.     fi
  227.     echo
  228.  
  229.     # start now ?
  230.     if [ -z "$c_usingsconb" ]; then
  231.       echo "$q_startnow = $a_startnow"
  232.     fi
  233.  
  234.     if [ "$c_stopserver" = "true" ]; then
  235.       echo
  236.       echo "$p_stopserver"
  237.     fi
  238.  
  239.     return $OK
  240. }
  241.  
  242.  
  243. getVisionDirs()
  244. {
  245.     # if the defaults are changed here they must also be changed in
  246.     # the postinstall.sh script
  247.  
  248.     c_globdir=""
  249.  
  250.     if [ -f "$GLOB_VISION_FILE" ]
  251.     then
  252. if [ -f $GLOB_VISION_FILE ]; then
  253.     c_globdir=`grep "^VISION_DIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_DIR=/s///"`
  254. else
  255.     c_globdir=""
  256. fi
  257.  
  258.         if [ -n "$c_globdir" -a -d "$c_globdir" ]
  259.         then
  260. if [ -f $GLOB_VISION_FILE ]; then
  261.     c_etcdir=`grep "^VISION_ETCDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_ETCDIR=/s///"`
  262. else
  263.     c_etcdir=""
  264. fi
  265.  
  266. if [ -f $GLOB_VISION_FILE ]; then
  267.     c_bindir=`grep "^VISION_BINDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_BINDIR=/s///"`
  268. else
  269.     c_bindir=""
  270. fi
  271.  
  272. if [ -f $GLOB_VISION_FILE ]; then
  273.     c_admindir=`grep "^VISION_ADMINDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_ADMINDIR=/s///"`
  274. else
  275.     c_admindir=""
  276. fi
  277.  
  278.        [ -z "$c_etcdir" ] && c_etcdir=$c_globdir/etc
  279.        [ -z "$c_bindir" ] && c_bindir=$c_globdir/bin
  280.        [ -z "$c_admindir" ] && c_admindir=$c_globdir/admin
  281.         else
  282.            rm $GLOB_VISION_FILE
  283.            c_globdir=""
  284.         fi
  285.     fi
  286.  
  287.     if [ -z "$c_globdir" ]
  288.     then
  289.         c_globdir=$GLOBDIR
  290.         c_etcdir=$c_globdir/etc
  291.         c_bindir=$c_globdir/bin
  292.         c_admindir=$c_globdir/admin
  293.     fi
  294.  
  295.     c_dir=$c_globdir/visionfs
  296.     c_etc=$c_globdir/vfsprofile
  297.     c_data=$c_globdir/vfsdata
  298.     c_globscript=$c_bindir/visionfs
  299.     instdir=$c_dir/_inst
  300.  
  301.     GLOBDIR=$c_globdir
  302.  
  303.     echo "GLOBDIR='$GLOBDIR'"   > $RESP_FILE
  304. }
  305.  
  306. checkVFSConfig()
  307. {
  308.     c_upgrade=N
  309.     a_deleteexisting="yes"
  310.     # Setup default answers for no config file
  311.     a_uniquenames=""
  312.     a_wadmin=""
  313.  
  314.     a_keepadmin="yes"
  315.     a_addnaming=yes
  316.     a_addadmin=yes
  317.     a_addconnman=yes
  318.     a_addprint=yes
  319.     a_addshare=yes
  320.     a_adddirs=yes
  321.     a_addauth=yes
  322.     a_addlistprint=no
  323.  
  324.     # Setup other defaults:
  325.     # Administrative user
  326.     if [ -z "$a_wadmin" ] ; then a_wadmin="$LOGNAME"; fi
  327.     if [ -z "$a_wadmin" ] ; then a_wadmin="$USER" ; fi
  328.     if [ -z "$a_wadmin" ] ; then a_wadmin=root ; fi
  329.  
  330.     if [ -f /etc/vision.inst ]
  331.     then
  332.     old_globdir=/usr/local/vision
  333.     vfs_dir=
  334.     vfs_dir=`grep "^VISIONFS*" /etc/vision.inst`
  335.     if [ -n "$vfs_dir" ]
  336.     then
  337.         old_globdir=`grep "^VISION_BINDIR" /etc/vision.inst | sed -e "s/VISION_BINDIR=//"`
  338.         old_globdir=`echo $old_globdir | sed -e "s,^\(.*\)/[^/]*$,\1,"`
  339.     fi
  340.     config_filename=$old_globdir/vfsprofile/current.prf
  341.     else
  342.     config_filename=$c_etc/current.prf
  343.     fi
  344.  
  345.     factory_filename=$c_etc/factory.prf
  346. }
  347.  
  348. queryUser()
  349. {
  350.     # These defines are added because this code is nicked from
  351.     # Vision97 VFS
  352.  
  353.     c_install=true
  354.     c_progcfg=${REQDIR}/${PKGINST}/vfscfg
  355.     chmod 777 $c_progcfg 1>/dev/null 2>&1
  356.  
  357.     if [ ! -x "$c_progcfg" ]; then
  358.        ccsError "$lf_noexe $c_progcfg"
  359.       return $FAIL
  360.     fi
  361.  
  362.     # Look for existing config file and extract answers from it
  363.     if [ -f $config_filename ]
  364.     then
  365.       # default to not knowing what to do with existing
  366.       a_deleteexisting="no"
  367. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  368.   filenameargs="$filenameargs --filename $config_filename"
  369. fi
  370. setupver=`sh -c "$c_progcfg $filenameargs --print setup/version"`
  371.  
  372.  
  373.       case "$setupver" in
  374.     "$PRODUCT_VERSION_FULL")
  375.                  if [ "$c_install" = "true" ]; then
  376.                    c_upgrade=C
  377.                    c_reinstall=true
  378.                  else
  379.                    c_upgrade=F
  380.                  fi
  381.                  a_addprint=no
  382.                  ;;
  383.     2.00.*)
  384.              c_upgrade=C
  385.          a_addprint=no
  386.          ;;
  387.         1.20.*)
  388.                  c_upgrade=C
  389.                  a_addprint=no
  390.                  a_remwinsprio=yes
  391.                  ;;
  392.     1.11.*|1.12.*|1.13.*)
  393.          c_upgrade=C
  394.          a_addprint=no
  395.          a_addlistprint=yes
  396.          ;;
  397.     1.10.9*)
  398.          c_upgrade=C
  399.          a_addlistprint=yes
  400.          ;;
  401.     1.10.5*)
  402.          c_upgrade=B
  403.          a_addlistprint=yes
  404.          ;;
  405.     *) 
  406.        newver=`echo $PRODUCT_VERSION_FULL | sed -e "/^[^.]*.[^.]*./s///"`
  407.        oldver=`echo $setupver | sed -e "/^[^.]*.[^.]*./s///"`
  408.        if [ ! -z "$oldver" ]; then
  409.          difference=`expr $newver \< $oldver`
  410.          if [ "$difference" = "1" ]; then
  411.            c_upgrade=D
  412.          else     
  413.            c_upgrade=I
  414.            a_deleteexisting=yes
  415.          fi
  416.        else # empty profile?
  417.          c_upgrade=F
  418.        fi
  419.        ;;
  420.       esac
  421.  
  422. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  423.   filenameargs="$filenameargs --filename $config_filename"
  424. fi
  425. ta_wadmin=`sh -c "$c_progcfg $filenameargs --print smbserver/server/admin"`
  426.  
  427.       if [ ! -z "$ta_wadmin" ]; then a_wadmin="$ta_wadmin"; fi
  428.  
  429.       # deal with 1.1 naming stuff
  430. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  431.   filenameargs="$filenameargs --filename $config_filename"
  432. fi
  433. name_flags=`sh -c "$c_progcfg $filenameargs --print smbserver/netbios/ip/naming/flags"`
  434.  
  435.       if [ "$name_flags" = "7" ]; then
  436.     a_uniquenames=$l_unixhostname
  437.       fi
  438. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  439.   filenameargs="$filenameargs --filename $config_filename"
  440. fi
  441. a_oldnames=`sh -c "$c_progcfg $filenameargs --print smbserver/netbios/ip/naming/names/unique"`
  442.  
  443.       if [ ! -z "$a_oldnames" ]; then
  444.     if [ ! -z "$a_uniquenames" ]; then
  445.       a_uniquenames="$a_uniquenames
  446.     $a_oldnames"
  447.     else
  448.       a_uniquenames="$a_oldnames"
  449.     fi
  450.       fi
  451.       export l_unixhostname
  452.       # 1.2+
  453.       if [ -z "$a_uniquenames" ]; then
  454. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  455.   filenameargs="$filenameargs --filename $config_filename"
  456. fi
  457. a_namingstuff=`sh -c "$c_progcfg $filenameargs --print smbserver/netbios/ip/naming/names"`
  458.  
  459.     if [ ! -z "$a_namingstuff" ]; then
  460.       a_uniquenames=`echo "$a_namingstuff" |
  461.       awk "BEGIN {FS=\":\"; RS=\"\n\"}
  462.       {
  463.         if ( \\$1 == \"*\" )
  464.           print \"$l_unixhostname\"
  465.         else
  466.           print \\$1
  467.       }" | sort -u`
  468.     fi
  469.       fi
  470.       if [ "$c_custom" = "true" -a "$a_deleteexisting" = "no" ]; then
  471. echo; echo
  472. echo $_ss_headlines
  473. echo $h_deleteexisting
  474. echo $_ss_headlines
  475.  
  476. echo "$p_deleteexisting"
  477. echo # blank line between prompt and question
  478. _valid=false
  479. while [ $_valid = false ]
  480. do
  481.   echo $N "$q_deleteexisting [$a_deleteexisting] $C"
  482.   read _answer
  483.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  484.   if [ -z "$_answer" ]
  485.   then
  486.     _answer="$a_deleteexisting"   # default
  487.   fi
  488.   case "$_answer" in
  489.     [${a_case_yes}]* )
  490.         _answer=$s_yes
  491.         _valid=true
  492.         ;;
  493.     [${a_case_no}]* )
  494.         _answer=$s_no
  495.         _valid=true
  496.         ;;
  497.   esac
  498. done
  499. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  500. a_deleteexisting="$_answer"
  501.  
  502.       fi
  503.  
  504.       # already overwriting everything by default
  505.       if [ "$a_deleteexisting" = "no" ]; then
  506.     if [ "$c_upgrade" = "B" ]; then
  507.       a_addadmin=no
  508.       a_addnaming=no
  509.       a_addconnman=no
  510.       a_addshare=no
  511.       a_adddirs=no
  512.       a_addauth=no
  513.     elif [ "$c_upgrade" != "F" ]; then
  514.       a_addauth=no
  515.       a_addconnman=no
  516.       a_addshare=no
  517.       a_adddirs=no
  518.     fi
  519.       else
  520.     a_addprint=yes
  521.       fi
  522.     fi
  523.  
  524.     # gather licensing info
  525. #    $v_scrdir/license $a_licargs --default 2>$c_tmpdir/$$.tmp
  526. #    . $c_tmpdir/$$.tmp
  527. #    rm -f $c_tmpdir/$$.tmp
  528. #
  529. #    if [ "$c_custom" = "true" ]; then
  530. #      $v_scrdir/license $a_licargs --ask 2>$c_tmpdir/$$.tmp
  531. #      . $c_tmpdir/$$.tmp
  532. #      rm -f $c_tmpdir/$$.tmp
  533. #    fi
  534.  
  535.     # We can't check validity of username entered as the system may be
  536.     # using NIS or other user database, in which case a grep of /etc/passwd
  537.     # may not turn up very much
  538.  
  539.     a_uadmin=""
  540.     # c_singleadmin is set/checked by license if in readonly mode
  541.     if [ ! -z "$c_wsingleadmin" ]; then
  542.       a_wadmin="$c_wsingleadmin"
  543.       a_uadmin="$c_usingleadmin"
  544.     elif [ "$c_custom" = "true" ]; then  
  545.       if [ "$a_deleteexisting" = "no" -a "$c_upgrade" != "N" ]; then
  546.     p_askaddadmin="$p_addadmin
  547.     $a_wadmin"
  548. echo; echo
  549. echo $_ss_headlines
  550. echo $h_addadmin
  551. echo $_ss_headlines
  552.  
  553. echo "$p_askaddadmin"
  554. echo # blank line between prompt and question
  555. _valid=false
  556. while [ $_valid = false ]
  557. do
  558.   echo $N "$q_keepadmin [$a_keepadmin] $C"
  559.   read _answer
  560.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  561.   if [ -z "$_answer" ]
  562.   then
  563.     _answer="$a_keepadmin"   # default
  564.   fi
  565.   case "$_answer" in
  566.     [${a_case_yes}]* )
  567.         _answer=$s_yes
  568.         _valid=true
  569.         ;;
  570.     [${a_case_no}]* )
  571.         _answer=$s_no
  572.         _valid=true
  573.         ;;
  574.   esac
  575. done
  576. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  577. a_keepadmin="$_answer"
  578.  
  579.     if [ "$a_keepadmin" = "yes" ]; then
  580.       a_addadmin="no"
  581.     fi
  582.       fi
  583.       
  584.       docheckadmin=false
  585.       _securitymode=""
  586.       if [ -f "$config_filename" ]; then
  587. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  588.   filenameargs="$filenameargs --filename $config_filename"
  589. fi
  590. _securitymode=`sh -c "$c_progcfg $filenameargs --print smbserver/server/authentication/method"`
  591.  
  592. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  593.   filenameargs="$filenameargs --filename $config_filename"
  594. fi
  595. _authfile=`sh -c "$c_progcfg $filenameargs --print smbserver/server/authentication/authfile"`
  596.  
  597. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  598.   filenameargs="$filenameargs --filename $config_filename"
  599. fi
  600. _mapfile=`sh -c "$c_progcfg $filenameargs --print smbserver/server/authentication/names"`
  601.  
  602.     _mapfile=`echo "$_mapfile" | awk 'BEGIN {FS=":"}{if ($2=2) print $3}'`
  603.       fi
  604.       if [ ! -z "$_securitymode" -a "$_securitymode" -eq 2 -a ! -z "$_authfile" ]; then
  605.       docheckadmin="true"
  606.       fi
  607.       
  608.       if [ "$a_addadmin" = "yes" -o "$a_keepadmin" = "no" ]; then
  609.     a_addadmin="yes"
  610.     adminsok="false"
  611.     a_wadmin=`echo "$a_wadmin" | head -1`
  612.     while [ "$adminsok" = "false" ]; do
  613. echo; echo
  614. echo $_ss_headlines
  615. echo $h_admin
  616. echo $_ss_headlines
  617.  
  618. echo "$p_admin"
  619. echo # blank line between prompt and question
  620. _valid=false
  621. while [ $_valid = false ]
  622. do
  623.   echo $N "$q_winadmin [$a_wadmin] $C"
  624.   read _answer
  625.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  626.   if [ -z "$_answer" ]
  627.   then
  628.     _answer="$a_wadmin"   # default
  629.   fi
  630.   _valid=true
  631. done
  632. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  633. a_wadmin="$_answer"
  634.  
  635.       a_uadmin="$a_wadmin"
  636.       # use name mapping if one exists
  637.       if [ ! -z "$_mapfile" ]; then
  638. if [ -f $_mapfile ]; then
  639.   mapping=`grep -i "^$a_wadmin": $_mapfile | awk 'BEGIN {FS=":"}{print $2}'`
  640. fi
  641.  
  642.         if [ ! -z "$mapping" ]; then
  643.           a_uadmin="$mapping"
  644.           if [ "$a_uadmin" = "*" ]; then
  645.         a_uadmin="$a_wadmin"
  646.           fi
  647.         fi
  648.       fi
  649. echo ""
  650. echo # blank line between prompt and question
  651. _valid=false
  652. while [ $_valid = false ]
  653. do
  654.   echo $N "$q_unixadmin [$a_uadmin] $C"
  655.   read _answer
  656.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  657.   if [ -z "$_answer" ]
  658.   then
  659.     _answer="$a_uadmin"   # default
  660.   fi
  661.   _valid=true
  662. done
  663. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  664. a_uadmin="$_answer"
  665.  
  666.       if [ "$docheckadmin" = "true" ]; then
  667.         # in VisionFS high security mode
  668.         $c_progauth --query $_authfile $a_wadmin
  669.         if [ "$?" != "1" ]; then
  670.           # not in authfile
  671.           a_adminnotauth="yes"
  672.           p_notauthorised="$p_adminnotauth1$a_wadmin$p_adminnotauth2"
  673. echo "$p_notauthorised"
  674. echo # blank line between prompt and question
  675. _valid=false
  676. while [ $_valid = false ]
  677. do
  678.   echo $N "$q_adminnotauth [$a_adminnotauth] $C"
  679.   read _answer
  680.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  681.   if [ -z "$_answer" ]
  682.   then
  683.     _answer="$a_adminnotauth"   # default
  684.   fi
  685.   case "$_answer" in
  686.     [${a_case_yes}]* )
  687.         _answer=$s_yes
  688.         _valid=true
  689.         ;;
  690.     [${a_case_no}]* )
  691.         _answer=$s_no
  692.         _valid=true
  693.         ;;
  694.   esac
  695. done
  696. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  697. a_adminnotauth="$_answer"
  698.  
  699.           if [ "$a_adminnotauth" = "no" ]; then
  700.         adminsok="true"
  701.           fi
  702.         else
  703.           adminsok="true"
  704.         fi
  705.       else
  706.         adminsok="true"
  707.       fi
  708.     done
  709.       fi
  710.     fi
  711.  
  712.     # naming
  713.     if [ -z "$a_uniquenames" ]; then
  714.       a_uniquenames=$l_unixhostname
  715.       a_keepnaming="no"
  716.     else
  717.       # build list of names used 
  718.       p_askuniquenames="$p_uniquenames
  719.     $a_uniquenames"
  720.       a_keepnaming="yes"
  721.     fi
  722.  
  723.     if [ "$c_custom" = "true" ]; then
  724.       if [ "$a_deleteexisting" = "no" -a "$c_upgrade" = "F" ]; then
  725. echo; echo
  726. echo $_ss_headlines
  727. echo $h_addnaming
  728. echo $_ss_headlines
  729.  
  730. echo "$p_addnaming"
  731. echo # blank line between prompt and question
  732. _valid=false
  733. while [ $_valid = false ]
  734. do
  735.   echo $N "$q_addnaming [$a_addnaming] $C"
  736.   read _answer
  737.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  738.   if [ -z "$_answer" ]
  739.   then
  740.     _answer="$a_addnaming"   # default
  741.   fi
  742.   case "$_answer" in
  743.     [${a_case_yes}]* )
  744.         _answer=$s_yes
  745.         _valid=true
  746.         ;;
  747.     [${a_case_no}]* )
  748.         _answer=$s_no
  749.         _valid=true
  750.         ;;
  751.   esac
  752. done
  753. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  754. a_addnaming="$_answer"
  755.  
  756.       fi
  757.       
  758.       if [ "$a_keepnaming" = "no" ]; then
  759. echo; echo
  760. echo $_ss_headlines
  761. echo $h_servername
  762. echo $_ss_headlines
  763.  
  764. echo "$p_singlename"
  765. echo # blank line between prompt and question
  766. _valid=false
  767. while [ $_valid = false ]
  768. do
  769.   echo $N "$q_servername [$a_uniquenames] $C"
  770.   read _answer
  771.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  772.   if [ -z "$_answer" ]
  773.   then
  774.     _answer="$a_uniquenames"   # default
  775.   fi
  776.   _valid=true
  777. done
  778. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  779. a_uniquenames="$_answer"
  780.  
  781.       elif [ "$a_addnaming" = "yes" ]; then
  782. echo; echo
  783. echo $_ss_headlines
  784. echo $h_servername
  785. echo $_ss_headlines
  786.  
  787. echo "$p_askuniquenames"
  788. echo # blank line between prompt and question
  789. _valid=false
  790. while [ $_valid = false ]
  791. do
  792.   echo $N "$q_uniquenames [$a_keepnaming] $C"
  793.   read _answer
  794.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  795.   if [ -z "$_answer" ]
  796.   then
  797.     _answer="$a_keepnaming"   # default
  798.   fi
  799.   case "$_answer" in
  800.     [${a_case_yes}]* )
  801.         _answer=$s_yes
  802.         _valid=true
  803.         ;;
  804.     [${a_case_no}]* )
  805.         _answer=$s_no
  806.         _valid=true
  807.         ;;
  808.   esac
  809. done
  810. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  811. a_keepnaming="$_answer"
  812.  
  813.     if [ "$a_keepnaming" = "no" ]; then
  814.       a_uniquenames=$l_unixhostname
  815. echo ""
  816. echo # blank line between prompt and question
  817. _valid=false
  818. while [ $_valid = false ]
  819. do
  820.   echo $N "$q_servername [$a_uniquenames] $C"
  821.   read _answer
  822.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  823.   if [ -z "$_answer" ]
  824.   then
  825.     _answer="$a_uniquenames"   # default
  826.   fi
  827.   _valid=true
  828. done
  829. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  830. a_uniquenames="$_answer"
  831.  
  832.     fi
  833.       fi
  834.     fi
  835.  
  836.     # Workgroup
  837.     if [ "$c_custom" = "true" -a "$a_addnaming" = "yes" -a "$c_install" = "false" ]; then
  838.       if [ "$a_keepnaming" = "yes" ]; then
  839.     a_resetwg="yes"
  840. echo; echo
  841. echo $_ss_headlines
  842. echo $h_workgroup
  843. echo $_ss_headlines
  844.  
  845. echo "$p_workgroup"
  846. echo # blank line between prompt and question
  847. _valid=false
  848. while [ $_valid = false ]
  849. do
  850.   echo $N "$q_workgroup [$a_resetwg] $C"
  851.   read _answer
  852.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  853.   if [ -z "$_answer" ]
  854.   then
  855.     _answer="$a_resetwg"   # default
  856.   fi
  857.   case "$_answer" in
  858.     [${a_case_yes}]* )
  859.         _answer=$s_yes
  860.         _valid=true
  861.         ;;
  862.     [${a_case_no}]* )
  863.         _answer=$s_no
  864.         _valid=true
  865.         ;;
  866.   esac
  867. done
  868. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  869. a_resetwg="$_answer"
  870.  
  871.       fi
  872.     fi
  873.  
  874.     # check which bits to overwrite
  875.     if [ "$c_custom" = "true" -a "$a_deleteexisting" = "no" -a "$c_upgrade" = "F" ]; then
  876. echo; echo
  877. echo $_ss_headlines
  878. echo $h_addconnman
  879. echo $_ss_headlines
  880.  
  881. echo "$p_addconnman"
  882. echo # blank line between prompt and question
  883. _valid=false
  884. while [ $_valid = false ]
  885. do
  886.   echo $N "$q_addconnman [$a_addconnman] $C"
  887.   read _answer
  888.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  889.   if [ -z "$_answer" ]
  890.   then
  891.     _answer="$a_addconnman"   # default
  892.   fi
  893.   case "$_answer" in
  894.     [${a_case_yes}]* )
  895.         _answer=$s_yes
  896.         _valid=true
  897.         ;;
  898.     [${a_case_no}]* )
  899.         _answer=$s_no
  900.         _valid=true
  901.         ;;
  902.   esac
  903. done
  904. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  905. a_addconnman="$_answer"
  906.  
  907. echo; echo
  908. echo $_ss_headlines
  909. echo $h_addshare
  910. echo $_ss_headlines
  911.  
  912. echo "$p_addshare"
  913. echo # blank line between prompt and question
  914. _valid=false
  915. while [ $_valid = false ]
  916. do
  917.   echo $N "$q_addshare [$a_addshare] $C"
  918.   read _answer
  919.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  920.   if [ -z "$_answer" ]
  921.   then
  922.     _answer="$a_addshare"   # default
  923.   fi
  924.   case "$_answer" in
  925.     [${a_case_yes}]* )
  926.         _answer=$s_yes
  927.         _valid=true
  928.         ;;
  929.     [${a_case_no}]* )
  930.         _answer=$s_no
  931.         _valid=true
  932.         ;;
  933.   esac
  934. done
  935. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  936. a_addshare="$_answer"
  937.  
  938. echo; echo
  939. echo $_ss_headlines
  940. echo $h_adddirs
  941. echo $_ss_headlines
  942.  
  943. echo "$p_adddirs"
  944. echo # blank line between prompt and question
  945. _valid=false
  946. while [ $_valid = false ]
  947. do
  948.   echo $N "$q_adddirs [$a_adddirs] $C"
  949.   read _answer
  950.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  951.   if [ -z "$_answer" ]
  952.   then
  953.     _answer="$a_adddirs"   # default
  954.   fi
  955.   case "$_answer" in
  956.     [${a_case_yes}]* )
  957.         _answer=$s_yes
  958.         _valid=true
  959.         ;;
  960.     [${a_case_no}]* )
  961.         _answer=$s_no
  962.         _valid=true
  963.         ;;
  964.   esac
  965. done
  966. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  967. a_adddirs="$_answer"
  968.  
  969. echo; echo
  970. echo $_ss_headlines
  971. echo $h_addauth
  972. echo $_ss_headlines
  973.  
  974. echo "$p_addauth"
  975. echo # blank line between prompt and question
  976. _valid=false
  977. while [ $_valid = false ]
  978. do
  979.   echo $N "$q_addauth [$a_addauth] $C"
  980.   read _answer
  981.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  982.   if [ -z "$_answer" ]
  983.   then
  984.     _answer="$a_addauth"   # default
  985.   fi
  986.   case "$_answer" in
  987.     [${a_case_yes}]* )
  988.         _answer=$s_yes
  989.         _valid=true
  990.         ;;
  991.     [${a_case_no}]* )
  992.         _answer=$s_no
  993.         _valid=true
  994.         ;;
  995.   esac
  996. done
  997. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  998. a_addauth="$_answer"
  999.  
  1000.     fi
  1001.  
  1002.  
  1003.     # check if want adding to rc if possible
  1004.     # work out the rctype
  1005. a_rccurrun=""
  1006. a_rcinstrun=""
  1007. if [ -d /etc/rc2.d -o -d /etc/rc3.d ]
  1008. then
  1009.   a_rctype="svr4"
  1010.   a_rcfile="/etc"
  1011. elif [ -d /sbin/rc2.d -o -d /sbin/rc3.d ]
  1012. then
  1013.   a_rctype="sbin"
  1014.   a_rcfile="/sbin"
  1015. elif [ -f /etc/rc.local ]
  1016. then
  1017.   a_rctype="local"
  1018.   a_rcfile="/etc/rc.local"
  1019. elif [ -f /etc/rc.d/rc.local ]
  1020. then
  1021.   a_rctype="rcd"
  1022.   a_rcfile="/etc/rc.d/rc.local"
  1023. elif [ -f /etc/rc.nfs ]
  1024. then
  1025.   a_rctype="nfs"
  1026.   a_rcfile="/etc/rc.nfs"
  1027. elif [ -f /etc/rc ]
  1028. then
  1029.   a_rctype="basic"
  1030.   a_rcfile="/etc/rc"
  1031. else
  1032.   a_rctype="unknown"
  1033.   a_rcfile=""
  1034. fi
  1035.  
  1036. if [ "$a_rctype" = "svr4" -o "$a_rctype" = "sbin" ]; then
  1037.   a_rccurrun=`who -r | awk '{print $3;}'`
  1038.   if [ "a_rctype" = "svr4" ]; then    
  1039.     _rcbase=/etc/rc
  1040.   else
  1041.     _rcbase=/sbin/rc
  1042.   fi
  1043.   for _i in S 1 2 3 4
  1044.   do
  1045.     if [ -f $_rcbase$_i.d/$INST_RCFILE ]
  1046.     then
  1047.       a_rcinstrun=$_i
  1048.       break
  1049.     fi
  1050.   done
  1051.   a_rcfile=$a_rcfile/rc$a_rccurrun.d/$INST_RCFILE
  1052. fi
  1053.  
  1054.     if [ "$a_rctype" != "unknown" ]
  1055.     then
  1056.       a_restart="yes"
  1057.       if [ "$c_custom" = "true" ]; then
  1058. echo; echo
  1059. echo $_ss_headlines
  1060. echo $h_restart
  1061. echo $_ss_headlines
  1062.  
  1063. echo "$p_restart"
  1064. echo # blank line between prompt and question
  1065. _valid=false
  1066. while [ $_valid = false ]
  1067. do
  1068.   echo $N "$q_restart [$a_restart] $C"
  1069.   read _answer
  1070.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  1071.   if [ -z "$_answer" ]
  1072.   then
  1073.     _answer="$a_restart"   # default
  1074.   fi
  1075.   case "$_answer" in
  1076.     [${a_case_yes}]* )
  1077.         _answer=$s_yes
  1078.         _valid=true
  1079.         ;;
  1080.     [${a_case_no}]* )
  1081.         _answer=$s_no
  1082.         _valid=true
  1083.         ;;
  1084.   esac
  1085. done
  1086. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  1087. a_restart="$_answer"
  1088.  
  1089.       fi
  1090.       
  1091.       # autodetect runlevel
  1092.       if [ ! -z "$a_rcinstrun" ]; then
  1093.     a_runlevel="$a_rcinstrun"
  1094.       else
  1095.     a_runlevel="$a_rccurrun"
  1096.       fi
  1097.       if [ "$a_restart" = "yes" -a "$c_custom" = "true" ]
  1098.       then
  1099. case "$a_rctype" in
  1100. "svr4"|"sbin")
  1101.   if [ "$a_rctype" = "svr4" ]
  1102.   then
  1103.     _rcbase=/etc/rc
  1104.   else
  1105.     _rcbase=/sbin/rc
  1106.   fi
  1107.  
  1108.   # check the installed runlevel
  1109.   _instrun=""
  1110.   for _i in S 1 2 3 4
  1111.   do
  1112.     if [ -f $_rcbase$_i.d/S90visionfs ] # !!!visionfs???
  1113.     then
  1114.       _instrun=$_i
  1115.       break
  1116.     fi
  1117.   done
  1118.  
  1119.   # check the current run level
  1120.   _currun=`who -r | awk '{print $3;}'`
  1121.  
  1122.   # display all known information
  1123.   echo "$p_runlevel"
  1124.   if [ ! -z "$_currun" ]
  1125.   then
  1126.     echo "$p_currun$_currun"
  1127.     a_runlevel=$_currun
  1128.   fi
  1129.   if [ ! -z "$_instrun" ]
  1130.   then
  1131.     echo "$p_instrun$_instrun"
  1132.     a_runlevel=$_instrun
  1133.   fi
  1134.  
  1135.   _valid="false"
  1136.   while [ $_valid = false ]
  1137.   do
  1138.     echo $N "$q_runlevel [$a_runlevel] $C"
  1139.     read _answer
  1140.     if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  1141.     if [ -z "$_answer" ]
  1142.     then
  1143.       _answer="$a_runlevel"   # default
  1144.     fi
  1145.     case "$_answer" in
  1146.     "s")
  1147.       _answer="S"
  1148.       ;;
  1149.     "1"|"2"|"3"|"4"|"S")
  1150.       ;;
  1151.     *)
  1152.       echo "$v_runlevel"
  1153.       continue
  1154.       ;;
  1155.     esac
  1156.  
  1157.     # check the rcdir exists
  1158.     if [ ! -d $_rcbase$_answer.d ]
  1159.     then
  1160.       _valid2=false
  1161.       while  [ "$_valid2" != "true" ]
  1162.       do
  1163.         echo $N "$q_mkrcdir [$a_yes] $C"
  1164.         read _answer2
  1165.         if [ -z "$_answer2" ]
  1166.         then
  1167.           _answer2=$a_yes
  1168.         fi
  1169.         case "$_answer2" in
  1170.         [${a_case_yes}]*)
  1171.           _valid2=true
  1172.           _valid=true
  1173.           ;;
  1174.         [${a_case_no}]*)
  1175.           _valid2=true
  1176.         esac
  1177.       done
  1178.     else
  1179.       _valid=true
  1180.     fi
  1181.   done
  1182.  
  1183.   if [ $trace ] ; then echo "    trace: answer accepted is\"$_answer\"" ; fi
  1184.   a_runlevel="$_answer"
  1185.   a_rcfile=$_rcbase$a_runlevel.d/S90visionfs
  1186.   ;;
  1187. "local")
  1188.   a_rcfile=/etc/rc.local
  1189.   ;;
  1190. "rcd")
  1191.   a_rcfile=/etc/rc.d/rc.local
  1192.   ;;
  1193. "nfs")
  1194.   a_rcfile=/etc/rc.nfs
  1195.   ;;
  1196. "basic")
  1197.   a_rcfile=/etc/rc
  1198.   ;;
  1199. *)
  1200.   a_rcfile=""
  1201.   ;;
  1202. esac
  1203.  
  1204.       fi
  1205.     fi
  1206.  
  1207.     # check if they want a checkpoint every morning
  1208.     a_checkpoint=yes
  1209. a_time=""
  1210. _cronline=`crontab -l 2>/dev/null | grep "/visionfs checkpoint"`
  1211. if [ ! -z "$_cronline" ]; then
  1212.   a_time=`echo "$_cronline" | sed -e "/^[^ ]* \([0-9]*\).*/s//\1/"`
  1213. fi
  1214.  
  1215.     if [  -z "$a_time" ]; then
  1216.       a_time=04
  1217.     fi
  1218. a_day=""
  1219. _cronline=`crontab -l 2>/dev/null | grep "/visionfs checkpoint"`
  1220. if [ ! -z "$_cronline" ]; then
  1221.   a_day=`echo "$_cronline" | awk '{print $5}'`
  1222. fi
  1223.  
  1224.     if [ -z "$a_day" ]; then
  1225.       a_day=0
  1226.     fi
  1227.     if [ "$c_custom" = "true" ]; then
  1228. echo; echo
  1229. echo $_ss_headlines
  1230. echo $h_checkpoint
  1231. echo $_ss_headlines
  1232.  
  1233. echo "$p_checkpoint"
  1234. echo # blank line between prompt and question
  1235. _valid=false
  1236. while [ $_valid = false ]
  1237. do
  1238.   echo $N "$q_checkpoint [$a_checkpoint] $C"
  1239.   read _answer
  1240.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  1241.   if [ -z "$_answer" ]
  1242.   then
  1243.     _answer="$a_checkpoint"   # default
  1244.   fi
  1245.   case "$_answer" in
  1246.     [${a_case_yes}]* )
  1247.         _answer=$s_yes
  1248.         _valid=true
  1249.         ;;
  1250.     [${a_case_no}]* )
  1251.         _answer=$s_no
  1252.         _valid=true
  1253.         ;;
  1254.   esac
  1255. done
  1256. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  1257. a_checkpoint="$_answer"
  1258.  
  1259.  
  1260.       if [ "$a_checkpoint" = "yes" ]; then
  1261. echo "$p_checkday"
  1262. _valid=false
  1263. while [ $_valid = false ]
  1264. do
  1265.   echo $N "$q_checkday [$a_day] $C"
  1266.   read _answer
  1267.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  1268.   if [ -z "$_answer" ]
  1269.   then
  1270.     _answer="$a_day"   # default
  1271.   fi
  1272.   case "$_answer" in
  1273.   [0-6] )
  1274.       _valid=true
  1275.       a_day=$_answer
  1276.       ;;
  1277.   *)
  1278.     echo "$v_badday"
  1279.     ;;
  1280.   esac
  1281. done
  1282.  
  1283. echo "$p_checktime"
  1284. _valid=false
  1285. while [ $_valid = false ]
  1286. do
  1287.   echo $N "$q_checktime [$a_time] $C"
  1288.   read _answer
  1289.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  1290.   if [ -z "$_answer" ]
  1291.   then
  1292.     _answer="$a_time"   # default
  1293.   fi
  1294.   case "$_answer" in
  1295.   [0-9]|[0-9][0-9])
  1296.     if [ `expr $_answer \< 24` != "0" ]; then
  1297.       _valid=true
  1298.       a_time=$_answer
  1299.     else
  1300.       echo "$v_badnumber"
  1301.     fi
  1302.     ;;
  1303.   *)
  1304.     echo "$v_badnumber"
  1305.     ;;
  1306.   esac
  1307. done
  1308.  
  1309.       fi
  1310.     fi
  1311.  
  1312.  
  1313.     #SCO NetBIOS check, and start now prompt.
  1314.     if [ -x /etc/netconfig ]; then
  1315.       c_instsconb=`netconfig -s | grep "#sco_nb"`
  1316.       if [ ! -z "$c_instsconb" ]; then
  1317. # Isn't unix nice and portable?
  1318. c_usingsconb="`(ps -xc || ps -u \`id | sed 's/^uid=\([0-9][0-9]*\).*/\1/'\` -o pid -o ucomm || ps -u \`id | sed 's/^uid=\([0-9][0-9]*\).*/\1/'\` ) 2>/dev/null | grep 'in.nbd' | awk '{print $1}'`"
  1319. if [ $trace ]; then echo "       trace in.nbd process ids are: $c_usingsconb"; fi
  1320.  
  1321.       fi
  1322.     fi
  1323.     if [ ! -z "$c_usingsconb" ]; then
  1324.       a_startnow=no
  1325.     else # ask if they want to start the server immediately.
  1326.       a_startnow=yes
  1327.       if [ "$c_custom" = "true" ]; then
  1328. echo; echo
  1329. echo $_ss_headlines
  1330. echo $h_startnow
  1331. echo $_ss_headlines
  1332.  
  1333. echo "$p_startnow"
  1334. echo # blank line between prompt and question
  1335. _valid=false
  1336. while [ $_valid = false ]
  1337. do
  1338.   echo $N "$q_startnow [$a_startnow] $C"
  1339.   read _answer
  1340.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  1341.   if [ -z "$_answer" ]
  1342.   then
  1343.     _answer="$a_startnow"   # default
  1344.   fi
  1345.   case "$_answer" in
  1346.     [${a_case_yes}]* )
  1347.         _answer=$s_yes
  1348.         _valid=true
  1349.         ;;
  1350.     [${a_case_no}]* )
  1351.         _answer=$s_no
  1352.         _valid=true
  1353.         ;;
  1354.   esac
  1355. done
  1356. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  1357. a_startnow="$_answer"
  1358.  
  1359.       fi
  1360.     fi
  1361.  
  1362.     if [ -f "$c_bindir/visionfs" -a -f "$c_dir/bin/scripts/status" -a "$c_upgrade" != "F" ]; then
  1363.       $c_bindir/visionfs status --quiet
  1364.       if [ "$?" != 0 ]; then
  1365.     c_stopserver=true
  1366.       fi
  1367.     fi
  1368.  
  1369.     return $OK
  1370. }
  1371.  
  1372. writesavefile() {
  1373.     
  1374.     echo "a_namingflags=\"$a_namingflags\""     >$SAVE_FILE
  1375.     echo "a_workgroup=\"$a_workgroup\""            >>$SAVE_FILE
  1376.     echo "a_uniquenames=\"$a_uniquenames\""     >>$SAVE_FILE
  1377.     echo "a_namingstuff=\"$a_namingstuff\""     >>$SAVE_FILE
  1378.     echo "a_keepnaming=\"$a_keepnaming\""     >>$SAVE_FILE
  1379.     echo "a_uadmin=\"$a_uadmin\""                 >>$SAVE_FILE
  1380.     echo "a_wadmin=\"$a_wadmin\""                 >>$SAVE_FILE
  1381.     echo "c_globdir=\"$c_globdir\""            >>$SAVE_FILE
  1382.     echo "c_etcdir=\"$c_etcdir\""            >>$SAVE_FILE
  1383.     echo "c_bindir=\"$c_bindir\""            >>$SAVE_FILE
  1384.     echo "c_dir=\"$c_dir\""                       >>$SAVE_FILE
  1385.     echo "c_etc=\"$c_etc\""                       >>$SAVE_FILE
  1386.     echo "c_data=\"$c_data\""                       >>$SAVE_FILE
  1387.     echo "c_globscript=\"$c_globscript\""       >>$SAVE_FILE
  1388.     echo "config_filename=\"$config_filename\"" >>$SAVE_FILE
  1389.     echo "factory_filename=\"$factory_filename\"" >>$SAVE_FILE
  1390.     echo "a_adddirs=\"$a_adddirs\"" >>$SAVE_FILE
  1391.     echo "a_addadmin=\"$a_addadmin\"" >>$SAVE_FILE
  1392.     echo "a_addauth=\"$a_addauth\"" >>$SAVE_FILE
  1393.     echo "a_addnaming=\"$a_addnaming\"" >>$SAVE_FILE
  1394.     echo "a_addprint=\"$a_addprint\"" >>$SAVE_FILE
  1395.     echo "a_addlistprint=\"$a_addlistprint\"" >>$SAVE_FILE
  1396.     echo "a_addconnman=\"$a_addconnman\"" >>$SAVE_FILE
  1397.     echo "a_addshare=\"$a_addshare\"" >>$SAVE_FILE
  1398.     echo "a_checkpoint=\"$a_checkpoint\"" >>$SAVE_FILE
  1399.     echo "a_restart=\"$a_restart\"" >>$SAVE_FILE
  1400.     echo "a_startnow=\"$a_startnow\"" >>$SAVE_FILE
  1401.     echo "a_rctype=\"$a_rctype\"" >>$SAVE_FILE
  1402.     echo "a_rcfile=\"$a_rcfile\"" >>$SAVE_FILE
  1403.     echo "a_rccurrun=\"$a_rccurrun\"" >>$SAVE_FILE
  1404.     echo "a_rcinstrun=\"$a_rcinstrun\"" >>$SAVE_FILE
  1405.     echo "a_runlevel=\"$a_runlevel\"" >>$SAVE_FILE
  1406.     echo "a_time=\"$a_time\"" >>$SAVE_FILE
  1407.     echo "a_day=\"$a_day\"" >>$SAVE_FILE
  1408.     echo "c_croncomm=\"$a_croncomm\"" >>$SAVE_FILE
  1409.     echo "c_upgrade=\"$c_upgrade\"" >>$SAVE_FILE
  1410.     echo "a_deleteexisting=\"$a_deleteexisting\"" >>$SAVE_FILE
  1411.     echo "c_install=\"$c_install\"" >>$SAVE_FILE
  1412.     echo "a_resetwg=\"$a_resetwg\"" >>$SAVE_FILE
  1413.     echo "c_usingsconb=\"$c_usingsconb\"" >>$SAVE_FILE
  1414.     echo "c_instsconb=\"$c_instsconb\"" >>$SAVE_FILE
  1415.  
  1416.         chmod 700 $SAVE_FILE                           
  1417. }
  1418.  
  1419. #------------------------------------------------------------------
  1420. #
  1421. #-------------------------------Main-------------------------------
  1422.  
  1423. #
  1424. # set up debug
  1425. #
  1426. SCRIPTS=/usr/sbin/pkginst
  1427. . ${SCRIPTS}/updebug
  1428. [ "$UPDEBUG" = YES ] && set -x
  1429.  
  1430. #
  1431. # set defaults
  1432. #
  1433. iqmDriven="FALSE"
  1434. doQueryUser="TRUE"
  1435. upgrade="freshInstall"
  1436. for_local_client=""
  1437. true_client_root=""
  1438.  
  1439. [ -n "$SILENT_INSTALL" ] && iqmDriven=TRUE
  1440.  
  1441. # There are three scenarious in which this script will run:
  1442. #
  1443. # $HOW_INSTALL=
  1444. #
  1445. # (a) NORMAL:           It is called from pkgadd'ing the individual package
  1446. #                       or from the network set installation.
  1447. #
  1448. # (b) ON_BFLOP:         It is called from foundation set installation on the
  1449. #                       boot floppies. This is the extraction phase. Pkgadd
  1450. #                       is run to do the initial load of the pkg.
  1451. #
  1452. # (c) POSTREBOOT:       It is called upon reboot from set installation on the
  1453. #                       boot floppies. This is the postreboot phase.
  1454. #
  1455. HOW_INSTALL=NORMAL
  1456. [ -f /tmp/VISIONFS_ON_BFLOP -o -f /etc/inst/scripts/postreboot.sh ] && {
  1457.         HOW_INSTALL=ON_BFLOP
  1458.         iqmDriven="TRUE"
  1459. }
  1460. [ -f /etc/rc2.d/S02POSTINST ] && {
  1461.         HOW_INSTALL=POSTREBOOT
  1462.         iqmDriven="TRUE"
  1463.         # this script (request) should never get run during post isl reboot so
  1464.         # just fall through to exit
  1465. }
  1466.  
  1467.  
  1468. # iqmDriver=TRUE is an OpenServer thing and in this case is equivalent
  1469. # to an UnixWare isl (initial system load) install in which the 
  1470. # installation script must NOT prompt for user input. We will use
  1471. # predefined defaults set up in the postinstall script instead of
  1472. # a response file..
  1473.  
  1474. if [ "$iqmDriven" = FALSE -a "$doQueryUser" = TRUE ]
  1475. then
  1476. N=""
  1477. C=""
  1478. if echo -n | grep n > /dev/null
  1479. then
  1480.   C="\c"
  1481. else
  1482.   N="-n"
  1483. fi
  1484. _ss_headlines="--------------------------------------------------------------------------"
  1485.  
  1486.     # source message file
  1487.     . ${REQDIR}/${PKGINST}/setup
  1488.     . ${REQDIR}/${PKGINST}/common
  1489. l_unixhostname="`uname -n | sed 's@^\([^\.]*\).*@\1@'`"
  1490.  
  1491.     a_damage="N"
  1492.     getVisionDirs
  1493.     checkVFSConfig
  1494.     c_custom=false
  1495.     queryUser
  1496.     while [ "$a_damage" = "N" -a $a_damage != "Q" ]
  1497.     do
  1498.     # Call queryUser with c_custom set as false
  1499.     # to get any existing settings but not to
  1500.     # ask any questions, horrible but the easiest
  1501.     # way to be able to use Vision97 VFS setup
  1502.     # without many changes
  1503.  
  1504.     showSummary
  1505.     ## check if ok
  1506.     a_damage="Y"
  1507. echo "$p_damage"
  1508. echo # blank line between prompt and question
  1509. _valid=false
  1510. while [ $_valid = false ]
  1511. do
  1512.   echo $N "$q_damage [$a_damage] $C"
  1513.   read _answer
  1514.   if [ $trace ] ; then echo "    trace: answer read in is \"$_answer\"" ; fi
  1515.   if [ -z "$_answer" ]
  1516.   then
  1517.     _answer="$a_damage"   # default
  1518.   fi
  1519.   case "$_answer" in y|Y|n|N|q|Q)_valid=true;;esac
  1520. done
  1521. if [ $trace ] ; then echo "    trace: answer accepted is \"$_answer\"" ; fi
  1522. a_damage="$_answer"
  1523.  
  1524. # the language can alter the behaviour of tr
  1525. a_damage=`echo $a_damage | LANG=C LC_ALL=C tr '[a-z]' '[A-Z]'`
  1526.  
  1527.  
  1528.     case "$a_damage" in
  1529.         q|Q)
  1530. echo $_ss_headlines
  1531. echo $h_nochange
  1532. echo $_ss_headlines
  1533.  
  1534.           requestReturnVal=$FAIL
  1535.           ;;
  1536.         n|N)
  1537.           # User wants to change something, set c_custom
  1538.           # to true so questions are asked
  1539.  
  1540.           checkVFSConfig
  1541.           c_custom=true
  1542.           queryUser
  1543.     esac
  1544.     done
  1545.  
  1546.     if [ "$a_damage" = "Y" ]
  1547.     then
  1548.     writesavefile
  1549.     requestReturnval=$OK
  1550.     fi
  1551. fi
  1552.  
  1553. exit $requestReturnVal
  1554.