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

  1. #******************************************************************************
  2. #
  3. #    Copyright (C) 1995 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. buildDate="3.5.2 - Mon Jan 27 13:22:20 1997"
  15.  
  16. # This script was built from shell library
  17. #   $Id: install.shlib,v 10.16.2.3 1997/02/11 19:58:19 tobyd Exp $
  18.  
  19. GLOB_VISION_FILE=/etc/vision.conf
  20. VISION_FILE=/etc/vision.conf
  21.  
  22.  
  23. REQDIR=/var/sadm/pkg/${PKGINST}/install
  24.  
  25. SCOARCH=i3un0210
  26.  
  27. INST_PRODUCT=VISIONFS
  28. INST_RCFILE=S90visionfs
  29. INST_RCSTRING="##VisionFS##"
  30.  
  31. POST_ISL_RCFILE=/etc/rc3.d/S90isl_visionfs
  32.  
  33. # Version numbers
  34. PRODUCT_VERSION="2.01.901"
  35. PRODUCT_VERSION_FULL="2.01.901"
  36. PRODUCT_VERSION_MAJOR=2
  37. PRODUCT_VERSION_FEATURE=0
  38. PRODUCT_VERSION_BUG=1
  39. PRODUCT_VERSION_BUILD=901
  40.  
  41. # Product names
  42. PRODUCT_FULL_NAME="SCO VisionFS"
  43. PRODUCT_SHORT_NAME="VisionFS"
  44. PRODUCT_LOCKD_NAME="SCO VisionFS Lock Daemon"
  45. PRODUCT_NAMED_NAME="SCO VisionFS Name Server Daemon"
  46. PRODUCT_COMPONENTS_NAME="VisionFS Architecture"
  47.  
  48. OK=0
  49. FAIL=1
  50. requestReturnVal=$OK
  51.  
  52. SAVE_FILE=/tmp/vfs.resp
  53.  
  54.  
  55. # set up install log
  56. INSTALL_LOG=/tmp/$$_visionfs.log
  57. exec 2> $INSTALL_LOG
  58. echo "$0" 1>&2
  59.  
  60. # error routines
  61.  
  62. ccsError()
  63. {
  64.     echo  "$*" 1>&2
  65. }
  66.  
  67. ccsWarning()
  68. {
  69.     echo  "$*" 1>&2
  70. }
  71.  
  72. getDefaults()
  73. {
  74.     # get the hostname of this system
  75. hostname="`uname -n | sed 's@^\([^\.]*\).*@\1@'`"
  76.  
  77.  
  78.     # if the defaults are changed here they must also be changed in
  79.     # the request.sh script.
  80.  
  81.     a_namingflags=$a_namingflags
  82.     a_workgroup="*"
  83.     a_uniquenames="$hostname"
  84.     a_wadmin="root"
  85.     a_uadmin="root"
  86.     a_adddirs="yes"
  87.     a_addadmin="yes"
  88.     a_addauth="yes"
  89.     a_addnaming="yes"
  90.     a_addprint="yes"
  91.     a_addconnman="yes"
  92.     a_addshare="yes"
  93.     a_checkpoint="yes"
  94.     a_restart="yes"
  95.     a_startnow="yes"
  96.     a_time=04
  97.     a_day=0
  98.     a_deleteexisting="yes"
  99.     a_keepnaming="no"
  100.     c_upgrade="N"
  101.  
  102.     # Setup directory pointers
  103.     
  104. if [ -f $GLOB_VISION_FILE ]; then
  105.     c_globdir=`grep "^VISION_DIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_DIR=/s///"`
  106. else
  107.     c_globdir=""
  108. fi
  109.  
  110.     [ -z "$c_globdir" ] && c_globdir=$GLOBDIR
  111. if [ -f $GLOB_VISION_FILE ]; then
  112.     c_bindir=`grep "^VISION_BINDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_BINDIR=/s///"`
  113. else
  114.     c_bindir=""
  115. fi
  116.  
  117.     [ -z "$c_bindir" ] && c_bindir=$c_globdir/bin    
  118. if [ -f $GLOB_VISION_FILE ]; then
  119.     c_etcdir=`grep "^VISION_ETCDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_ETCDIR=/s///"`
  120. else
  121.     c_etcdir=""
  122. fi
  123.  
  124.     [ -z "$c_etcdir" ] && c_etcdir=$c_globdir/etc    
  125.  
  126.     c_dir=$c_globdir/visionfs
  127.     c_etc=$c_globdir/vfsprofile
  128.     c_data=$c_globdir/vfsdata
  129.     c_globscript=$c_bindir/visionfs
  130. }
  131.  
  132. doPostConfigure()
  133. {
  134.     # STATUS output
  135.     echo "1\b\c"
  136.  
  137.     # unmunch the big files that were cut up in the packaging
  138.     # STATUS steps 1 thru 5
  139.     assemble_files
  140.     [ "$?" != "0" ] && { 
  141.        ccsError "ERROR: VisionFS - assemble_files failed"
  142.        return $FAIL
  143.     }
  144.  
  145.     # STATUS output
  146.     echo "6\b\c"
  147.  
  148.     # Setup new profiles and binaries
  149.     config_filename=${GLOBDIR}/vfsprofile/current.prf
  150.     factory_filename=${GLOBDIR}/vfsprofile/factory.prf
  151.  
  152.     c_progcfg=${GLOBDIR}/visionfs/bin/$SCOARCH/vfscfg
  153.  
  154.     # make sure the umask allows the creation of readable files
  155.     umask 022
  156.  
  157.     VFSDIR=${GLOBDIR}/visionfs
  158.     VFSETC=${GLOBDIR}/vfsprofile
  159.     VFSLANG=en_US
  160.     VISION_DIR=${GLOBDIR};export VISION_DIR
  161.  
  162. filenameargs=""
  163. if [ -f ${VFSDIR}/config/en_US/defaults ]; then
  164.   filenameargs="--filename ${VFSDIR}/config/en_US/defaults"
  165. fi
  166. if [ -f ${VFSETC}/current.prf ]; then
  167.   filenameargs="$filenameargs --filename ${VFSETC}/current.prf"
  168. fi
  169. export filenameargs
  170.  
  171.  
  172.     VFSDIR=$c_dir
  173.     export VFSDIR
  174.  
  175.     if [ ! -x "$c_progcfg" ]; then
  176.       ccsError "$lf_noexe $c_progcfg"    
  177.       return $FAIL
  178.     fi
  179.  
  180.     if [ "$a_deleteexisting" = "yes" ]
  181.     then
  182.     rm -f $config_filename
  183.     if [ -f $factory_filename ]
  184.     then
  185.         rm -f $factory_filename
  186.     fi
  187.     else 
  188.     cp $c_etc/current.prf $config_filename 1>/dev/null 2>&1
  189.     fi
  190.  
  191.     if [ ! -f $config_filename ]
  192.     then
  193.     echo "$msg_preprof" > $config_filename
  194.     fi
  195.  
  196.     # make sure the latest version is in there
  197. $c_progcfg --filename "$config_filename" --remove "setup/version"
  198.  
  199.  
  200. $c_progcfg --filename $config_filename --set setup/version "$PRODUCT_VERSION_FULL"
  201.  
  202.  
  203.     # New for 97
  204.     if [ "$c_upgrade" = "C" ]; then
  205. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  206.   filenameargs="$filenameargs --filename $config_filename"
  207. fi
  208. _namdir=`sh -c "$c_progcfg $filenameargs --print smbserver/netbios/ip/naming/dir"`
  209.  
  210.     if [ -z "$_namdir" ]; then
  211. $c_progcfg --filename $config_filename --set smbserver/netbios/ip/naming/dir $c_data/naming
  212.  
  213.     fi
  214.     fi
  215.  
  216.     if [ "$a_adddirs" = "yes" ]; then
  217. $c_progcfg --filename $config_filename --set smbserver/server/diagnostics/dir $c_data/logs
  218.  
  219. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/defaults/printer/spool/dir $c_data/spool
  220.  
  221. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/defaults/printer/queue/dir $c_data/queues
  222.  
  223. $c_progcfg --filename $config_filename --set smbserver/netbios/ip/naming/dir $c_data/naming
  224.  
  225.     fi
  226.  
  227.     # Map file / old key
  228. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  229.   filenameargs="$filenameargs --filename $config_filename"
  230. fi
  231. mapfile=`sh -c "$c_progcfg $filenameargs --print smbserver/server/authentication/names"`
  232.  
  233.  
  234.     mapfile=`echo "$mapfile" | awk 'BEGIN {FS=":"}{if ($2=2) print $3}'`
  235.     if [ "$c_upgrade" != "F" ]; then
  236.       if [ ! -z "$mapfile" ]; then
  237.       # sort out the old mappings
  238. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  239.   filenameargs="$filenameargs --filename $config_filename"
  240. fi
  241. old_mappings=`sh -c "$c_progcfg $filenameargs --print smbserver/server/authentication/mappings"`
  242.  
  243.       if [ ! -z "$old_mappings" ]; then
  244.           echo "$old_mappings" | while read a_mapping; do
  245.         wmapname=`echo $a_mapping | awk 'BEGIN {FS=":"} {print $1}'`
  246.         umapname=`echo $a_mapping | awk 'BEGIN {FS=":"} {print $2}'`
  247. if [ -f $mapfile ]; then
  248.   _addmapresult="" 
  249. if [ -f $mapfile ]; then
  250.   _addmapresult=`grep -i "^$wmapname": $mapfile | awk 'BEGIN {FS=":"}{print $2}'`
  251. fi
  252.  
  253.   if [ ! -z "$_addmapresult" ]; then
  254. if [ -f $mapfile ]; then
  255.   cat $mapfile | grep -vi "^$wmapname": > $mapfile.$$$
  256.   sort $mapfile.$$$ > $mapfile
  257.   rm -f $mapfile.$$$
  258.   chmod 600 $mapfile
  259. fi
  260.  
  261.   fi
  262. fi
  263. echo "$wmapname:$umapname::::" >> $mapfile
  264. chmod 600 $mapfile
  265.  
  266.           done
  267.       fi
  268. $c_progcfg --filename "$config_filename" --remove "smbserver/server/authentication/mappings"
  269.  
  270.       fi
  271.     fi
  272.  
  273.     if [ "$a_addadmin" = "yes" ]; then
  274.       if [ -z "$a_uadmin" ]; then
  275. $c_progcfg --filename "$config_filename" --remove "smbserver/server/admin"
  276.  
  277.         echo "$a_wadmin" | while read an_admin; do
  278. $c_progcfg --filename $config_filename --append smbserver/server/admin "$an_admin"
  279.  
  280.         done
  281.       else
  282. $c_progcfg --filename $config_filename --set smbserver/server/admin "$a_wadmin"
  283.  
  284.  
  285.         if [ ! -z "$mapfile" ]
  286.         then
  287. if [ -f $mapfile ]; then
  288.   _addmapresult="" 
  289. if [ -f $mapfile ]; then
  290.   _addmapresult=`grep -i "^$a_wadmin": $mapfile | awk 'BEGIN {FS=":"}{print $2}'`
  291. fi
  292.  
  293.   if [ ! -z "$_addmapresult" ]; then
  294. if [ -f $mapfile ]; then
  295.   cat $mapfile | grep -vi "^$a_wadmin": > $mapfile.$$$
  296.   sort $mapfile.$$$ > $mapfile
  297.   rm -f $mapfile.$$$
  298.   chmod 600 $mapfile
  299. fi
  300.  
  301.   fi
  302. fi
  303. echo "$a_wadmin:$a_uadmin::::" >> $mapfile
  304. chmod 600 $mapfile
  305.  
  306.         fi
  307.       fi
  308.     fi
  309.  
  310.     if [ ! -z "$mapfile" ]
  311.     then
  312.     # final check to make sure that all admins are in mapfile
  313.     echo "$a_wadmin" | while read an_admin; do
  314. if [ -f $mapfile ]; then
  315.   _tmpuadmin=`grep -i "^$an_admin": $mapfile | awk 'BEGIN {FS=":"}{print $2}'`
  316. fi
  317.  
  318.         if [ -z "$_tmpuadmin" ]; then
  319.         if [ -z "$a_uadmin" ]; then
  320. if [ -f $mapfile ]; then
  321.   _addmapresult="" 
  322. if [ -f $mapfile ]; then
  323.   _addmapresult=`grep -i "^$a_wadmin": $mapfile | awk 'BEGIN {FS=":"}{print $2}'`
  324. fi
  325.  
  326.   if [ ! -z "$_addmapresult" ]; then
  327. if [ -f $mapfile ]; then
  328.   cat $mapfile | grep -vi "^$a_wadmin": > $mapfile.$$$
  329.   sort $mapfile.$$$ > $mapfile
  330.   rm -f $mapfile.$$$
  331.   chmod 600 $mapfile
  332. fi
  333.  
  334.   fi
  335. fi
  336. echo "$a_wadmin:*::::" >> $mapfile
  337. chmod 600 $mapfile
  338.  
  339.         else
  340. if [ -f $mapfile ]; then
  341.   _addmapresult="" 
  342. if [ -f $mapfile ]; then
  343.   _addmapresult=`grep -i "^$a_wadmin": $mapfile | awk 'BEGIN {FS=":"}{print $2}'`
  344. fi
  345.  
  346.   if [ ! -z "$_addmapresult" ]; then
  347. if [ -f $mapfile ]; then
  348.   cat $mapfile | grep -vi "^$a_wadmin": > $mapfile.$$$
  349.   sort $mapfile.$$$ > $mapfile
  350.   rm -f $mapfile.$$$
  351.   chmod 600 $mapfile
  352. fi
  353.  
  354.   fi
  355. fi
  356. echo "$a_wadmin:$a_uadmin::::" >> $mapfile
  357. chmod 600 $mapfile
  358.  
  359.         fi
  360.         fi
  361.     done
  362.     fi
  363.  
  364.     if [ "$a_addauth" = "yes" ]; then
  365. $c_progcfg --filename $config_filename --set smbserver/server/authentication/method "0"
  366.  
  367.     fi
  368.  
  369.     servercomment=""
  370. if [ -f $config_filename -a `echo "$filenameargs" | grep $config_filename 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  371.   filenameargs="$filenameargs --filename $config_filename"
  372. fi
  373. servercomment=`sh -c "$c_progcfg $filenameargs --print smbserver/netbios/ip/naming/names/comment"`
  374.  
  375.     if [ -z "$servercomment" ]; then
  376.       servercomment="%%SERVERNAME%% %%VERSION%%"
  377.     fi
  378. $c_progcfg --filename "$config_filename" --remove "smbserver/netbios/ip/naming/names/comment"
  379.  
  380.  
  381.     if [ "$a_addnaming" = "yes" ]; then
  382. $c_progcfg --filename "$config_filename" --remove "smbserver/netbios/ip/naming/names"
  383.  
  384.       if [ "$a_keepnaming" = "yes" ]; then
  385.     if [ "$a_resetwg" = "yes" ]; then # wg -> *
  386.       a_namingstuff=`echo "$a_namingstuff" |
  387.       awk 'BEGIN {FS=":"; RS="\n"}
  388.       {
  389.         printf "%s:%s:%s:%s:%s:%s", $1, "*", $3, $4, $5, $6
  390.         if ( NF > 6 )
  391.           for (r=7; r <= NF; r=r+1)
  392.         printf ":%s", $r
  393.         printf "\n"}'`
  394.     fi
  395.     if [ "$a_addconnman" = "yes" ]; then # connect redirect -> ""
  396.       a_namingstuff=`echo "$a_namingstuff" |
  397.       awk 'BEGIN {FS=":"; RS="\n"}
  398.       {
  399.         printf "%s:%s:%s:%s:%s:%s", $1, $2, $3, $4, "", $6
  400.         if ( NF > 6 )
  401.           for (r=7; r <= NF; r=r+1)
  402.         printf ":%s", $r
  403.         printf "\n"}'`
  404.     fi
  405.     if [ ! -z "$a_namingstuff" ]; then
  406.       echo "$a_namingstuff" | while read vfsname; do
  407. $c_progcfg --filename $config_filename --append smbserver/netbios/ip/naming/names "$vfsname"
  408.  
  409.       done
  410.     else
  411.       echo "$a_uniquenames" | while read vfsname; do
  412.         if [ "$vfsname" = "$l_unixhostname" ]; then
  413.           vfsname="*";
  414.         fi
  415. $c_progcfg --filename $config_filename --append smbserver/netbios/ip/naming/names "$vfsname:*::::$servercomment"
  416.  
  417.       done
  418.     fi
  419.       else
  420.     if [ "$a_uniquenames" = "$l_unixhostname" ]; then
  421.       a_uniquenames="*";
  422.     fi
  423. $c_progcfg --filename $config_filename --append smbserver/netbios/ip/naming/names "$a_uniquenames:*::::$servercomment"
  424.  
  425.       fi
  426. $c_progcfg --filename "$config_filename" --remove "smbserver/netbios/ip/naming/flags"
  427.  
  428. $c_progcfg --filename "$config_filename" --remove "smbserver/netbios/ip/naming/names/unique"
  429.  
  430. $c_progcfg --filename "$config_filename" --remove "smbserver/netbios/ip/naming/names/workgroup"
  431.  
  432.     fi
  433.  
  434.     if [ "$a_addconnman" = "yes" ]; then
  435. $c_progcfg --filename "$config_filename" --remove "smbserver/netbios/ip/sessionmanager/port"
  436.  
  437. $c_progcfg --filename "$config_filename" --remove "smbserver/netbios/ip/connectionmanager/port"
  438.  
  439. $c_progcfg --filename "$config_filename" --remove "smbserver/netbios/ip/connectionmanager/accesses"
  440.  
  441. $c_progcfg --filename "$config_filename" --remove "smbserver/netbios/ip/connectionmanager/redirectpatterns"
  442.  
  443.     fi
  444.  
  445.     if [ "$a_addprint" = "yes" ]; then
  446.       cat ${GLOBDIR}/visionfs/_inst/"$SCOARCH".prf >> $config_filename 
  447.     fi
  448.     if [ "$a_addlistprint" = "yes" ]; then
  449. if [ -f ${GLOBDIR}/_inst/"$SCOARCH".prf -a `echo "$filenameargs" | grep ${GLOBDIR}/_inst/"$SCOARCH".prf 1>/dev/null 2>&1; echo $?` -ne 0 ]; then
  450.   filenameargs="$filenameargs --filename ${GLOBDIR}/_inst/"$SCOARCH".prf"
  451. fi
  452. listprint=`sh -c "$c_progcfg $filenameargs --print smbserver/server/shares/unix/defaults/printer/command/listprinters"`
  453.  
  454. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/defaults/printer/command/listprinters "$listprint"
  455.  
  456.     fi
  457.  
  458. if [ -f $GLOB_VISION_FILE ]; then
  459.     grep -v "^VISION_TOOLSDIR=" $GLOB_VISION_FILE > $GLOB_VISION_FILE.tmp
  460. else
  461.     /bin/rm -f $GLOB_VISION_FILE
  462.     echo "#  This file is machine processed" > $GLOB_VISION_FILE.tmp
  463.     echo "# Edit it at your own risk" >> $GLOB_VISION_FILE.tmp
  464. fi
  465. if [ -n "${c_globdir}/bin/pctools" ]; then
  466.     echo VISION_TOOLSDIR="${c_globdir}/bin/pctools" >> $GLOB_VISION_FILE.tmp
  467. fi
  468. sort $GLOB_VISION_FILE.tmp > $GLOB_VISION_FILE
  469. if [ -f $GLOB_VISION_FILE.tmp ]; then
  470.     /bin/rm -f $GLOB_VISION_FILE.tmp
  471. fi
  472. chmod 644 $GLOB_VISION_FILE
  473.  
  474.  
  475. if [ -f $GLOB_VISION_FILE ]; then
  476.     _toolsdir=`grep "^VISION_TOOLSDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_TOOLSDIR=/s///"`
  477. else
  478.     _toolsdir=""
  479. fi
  480.  
  481.     if [ -z "$_toolsdir" ]; then
  482.       ccsError "$lf_notoolsdir"
  483.       return $FAIL
  484.     fi
  485.  
  486. # Find our language as a subdir of $_toolsdir
  487. if [ ! -d $_toolsdir ]
  488. then 
  489.   echo "!10! Parent of language directories doesn't exist: $_toolsdir"
  490.   exit 10
  491. fi
  492.  
  493. langs=`(cd $_toolsdir ; ls -d ??_?? 2>/dev/null)`
  494. if [ $trace ] ; then echo "    trace: langs=$langs" ; fi
  495. case $langs in
  496.   "" )                        # no languages!
  497.     echo "!11! Can't find any languages in directory $_toolsdir"
  498.     exit 11
  499.   ;;
  500.   ??_?? )                        # Good; just one
  501.     VISIONLANG=$langs
  502.   ;;
  503.   * )                        # Choices, choices
  504.     case $LANG in
  505.       ""|C|POSIX )
  506.       ;;                    # Ignored
  507.       * )                    # Some OS specific string
  508.         LA=`expr $LANG : "\(..\)"`            # 1st two chars
  509.         # must ensure tr uses C locale to lower case!
  510.     la=`echo $LA | LANG=C LC_ALL=C tr '[A-Z]' '[a-z]'`
  511.         if [ $trace ] ; then echo "    trace: la=$la"; fi
  512.     goodlangs=`echo "$langs" | grep "^$la"`
  513.     if [ -n "$goodlangs" ]
  514.     then
  515.       langs=$goodlangs            # ones that match $LANG
  516.         fi
  517.     esac
  518.     # Pick the first language in langs, or en_US if that is empty
  519.     VISIONLANG=`expr "$langs en_US" : "\(.._..\)"`
  520.   ;;
  521. esac
  522.  
  523. if [ $trace ] ; then echo "    trace: VISIONLANG=$VISIONLANG" ; fi
  524.  
  525. if [ -f $GLOB_VISION_FILE ]; then
  526.     c_deploydir=`grep "^VISION_DEPLOYDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_DEPLOYDIR=/s///"`
  527. else
  528.     c_deploydir=""
  529. fi
  530.  
  531. if [ -f $GLOB_VISION_FILE ]; then
  532.     c_globdir=`grep "^VISION_DIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_DIR=/s///"`
  533. else
  534.     c_globdir=""
  535. fi
  536.  
  537. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/visionfs/type"
  538.  
  539. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/visionfs/comment"
  540.  
  541. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/visionfs/active"
  542.  
  543. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/visionfs/browsable"
  544.  
  545. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/visionfs/writable"
  546.  
  547. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/visionfs/path"
  548.  
  549. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/visionfs/privileges"
  550.  
  551.  
  552. $c_progcfg --filename $config_filename --set smbserver/licensing/model "5"
  553.  
  554.  
  555.     # clear 1.1 key
  556. $c_progcfg --filename "$config_filename" --remove "smbserver/licenses"
  557.  
  558.  
  559.     if [ "$a_addshare" = "yes" -o "$c_upgrade" = "C" ]; then
  560. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/disk/visiontools/type "0"
  561.  
  562. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/disk/visiontools/comment "SCO Vision97 tools and information"
  563.  
  564. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/disk/visiontools/active "1"
  565.  
  566. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/disk/visiontools/browsable "1"
  567.  
  568. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/disk/visiontools/writable "0"
  569.  
  570. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/disk/visiontools/path $_toolsdir/$VISIONLANG
  571.  
  572. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/disk/visiontools/privileges "*:*:1:*:*:r"
  573.  
  574.     fi
  575.  
  576.     if [ "$a_addshare" = "yes" ]; then
  577. $c_progcfg --filename $config_filename --set smbserver/server/shares/unix/disk/config$/comment "Profile Editor only - do not delete"
  578.  
  579. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/config$/type"
  580.  
  581. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/config$/active"
  582.  
  583. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/config$/browsable"
  584.  
  585. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/config$/writable"
  586.  
  587. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/config$/path"
  588.  
  589. $c_progcfg --filename "$config_filename" --remove "smbserver/server/shares/unix/disk/config$/privileges"
  590.  
  591.     fi
  592.  
  593.  
  594.     # convert old substitution strings
  595.     if [ "$c_upgrade" != "F" ]; then
  596.     confighomeset=`grep %%CONFIGHOME%% $config_filename`
  597.     producthomeset=`grep %%PRODUCTHOME%% $config_filename`
  598.     if [ ! -z  "$confighomeset" -o ! -z "$producthomeset" ]; then
  599.         cat $config_filename | sed 's;%%CONFIGHOME%%;%%VISION_DIR%%/vfsprofile;; s;%%PRODUCTHOME%%;%%VISION_DIR%%/visionfs;;' > $config_filename.$$$
  600.         rm $config_filename
  601.         mv $config_filename.$$$ $config_filename
  602.     fi
  603.     fi
  604.     
  605.     # STATUS output
  606.     echo "7\b\c"
  607.  
  608.     # add to the rc after removing existing setup
  609. # set the defaults
  610. _delete=false
  611. _files="dummy"
  612.  
  613. # create the list of files to check
  614. case "$a_rctype" in
  615. "svr4")
  616.   _delete=true
  617.   for _i in S 1 2 3 4
  618.   do
  619.     if [ -f /etc/rc$_i.d/$INST_RCFILE ]
  620.     then
  621.       _files="$_files /etc/rc$_i.d/$INST_RCFILE"
  622.     fi
  623.   done
  624.   ;;
  625. "sbin")
  626.   _delete=true
  627.   for _i in S 1 2 3 4
  628.   do
  629.     if [ -f /sbin/rc$_i.d/S90visionfs ]
  630.     then
  631.       _files="$_files /sbin/rc$_i.d/S90visionfs" # !!!visionfs???
  632.     fi
  633.   done
  634.   ;;
  635. "local")
  636.   _files="$_files /etc/rc.local"
  637.   ;;
  638. "rcd")
  639.   _files="$_files /etc/rc.d/rc.local"
  640.   ;;
  641. "nfs")
  642.   _files="$_files /etc/rc.nfs"
  643.   ;;
  644. "basic")
  645.   _files="$_files /etc/rc"
  646.   ;;
  647. esac
  648.  
  649. # either delete the files, or substitute them
  650. if [ "$_delete" = "true" ]
  651. then
  652.   for _i in $_files
  653.   do
  654.     if [ "$_i" = "dummy" ]
  655.     then
  656.       continue
  657.     fi
  658.     rm -f $_i
  659.   done
  660. else
  661.   for _i in $_files
  662.   do
  663.     if [ "$_i" = "dummy" ]
  664.     then
  665.       continue
  666.     fi
  667.  
  668.     # delete everything between the start and stop markers
  669.     echo "BEGIN {" > $_i.awk
  670.     echo "  doprint=1;" >> $_i.awk
  671.     echo "}" >> $_i.awk
  672.     echo "\$1 == \"$INST_RCSTRING\" {" >> $_i.awk
  673.     echo "  if (\$2 == \"start\") {" >> $_i.awk
  674.     echo "    doprint = 0;" >> $_i.awk
  675.     echo "  } else {" >> $_i.awk
  676.     echo "    doprint = 1;" >> $_i.awk
  677.     echo "    continue;" >> $_i.awk
  678.     echo "  }" >> $_i.awk
  679.     echo "}" >> $_i.awk
  680.     echo "{" >> $_i.awk
  681.     echo "  if (doprint == 1) {" >> $_i.awk
  682.     echo "    print" >> $_i.awk
  683.     echo "  }" >> $_i.awk
  684.     echo "}" >> $_i.awk
  685.  
  686.     # run the newly created awk script on the file
  687.     if [ -f $_i.awk ]
  688.     then
  689.       cp -p $_i $_i.tmp1 #for perms
  690.       awk -f $_i.awk $_i > $_i.tmp1
  691.       rm -f $_i.awk
  692.     fi 
  693.  
  694.     # move the new copy over the old
  695.     if [ -f $_i.tmp1 ]
  696.     then
  697.       cp -p $_i.tmp1 $_i
  698.       rm -f $_i.tmp1
  699.     fi
  700.   done
  701. fi
  702.  
  703.     if [ "$a_restart" = "yes" ]
  704.     then
  705.     # work out the rctype
  706. a_rccurrun=""
  707. a_rcinstrun=""
  708. if [ -d /etc/rc2.d -o -d /etc/rc3.d ]
  709. then
  710.   a_rctype="svr4"
  711.   a_rcfile="/etc"
  712. elif [ -d /sbin/rc2.d -o -d /sbin/rc3.d ]
  713. then
  714.   a_rctype="sbin"
  715.   a_rcfile="/sbin"
  716. elif [ -f /etc/rc.local ]
  717. then
  718.   a_rctype="local"
  719.   a_rcfile="/etc/rc.local"
  720. elif [ -f /etc/rc.d/rc.local ]
  721. then
  722.   a_rctype="rcd"
  723.   a_rcfile="/etc/rc.d/rc.local"
  724. elif [ -f /etc/rc.nfs ]
  725. then
  726.   a_rctype="nfs"
  727.   a_rcfile="/etc/rc.nfs"
  728. elif [ -f /etc/rc ]
  729. then
  730.   a_rctype="basic"
  731.   a_rcfile="/etc/rc"
  732. else
  733.   a_rctype="unknown"
  734.   a_rcfile=""
  735. fi
  736.  
  737. if [ "$a_rctype" = "svr4" -o "$a_rctype" = "sbin" ]; then
  738.   a_rccurrun=`who -r | awk '{print $3;}'`
  739.   if [ "a_rctype" = "svr4" ]; then    
  740.     _rcbase=/etc/rc
  741.   else
  742.     _rcbase=/sbin/rc
  743.   fi
  744.   for _i in S 1 2 3 4
  745.   do
  746.     if [ -f $_rcbase$_i.d/$INST_RCFILE ]
  747.     then
  748.       a_rcinstrun=$_i
  749.       break
  750.     fi
  751.   done
  752.   a_rcfile=$a_rcfile/rc$a_rccurrun.d/$INST_RCFILE
  753. fi
  754.  
  755.     if [ "$a_rctype" != "unknown" ]
  756.     then
  757. case "$a_rctype" in
  758. "svr4"|"sbin")
  759.   # check the directory exists, doesn't get here unless they've already been
  760.   # asked if they want it created
  761.   _rcdir=`echo $a_rcfile | sed -e "s,^\(.*\)/[^/]*$,\1,"`
  762.   if [ ! -d "$_rcdir" ]
  763.   then
  764.     mkdir $_rcdir
  765.   fi
  766.  
  767.   # overwrite current file even though user may have changed it
  768.   cat ${REQDIR}/${PKGINST}/rc.full > $a_rcfile.tmp1
  769.   chmod a+x $a_rcfile.tmp1
  770.   ;;
  771. "local"|"nfs"|"basic")
  772.   cp -p $a_rcfile $a_rcfile.tmp1
  773.   echo "$INST_RCSTRING start" >> $a_rcfile.tmp1
  774.   cat ${REQDIR}/${PKGINST}/rc.append >> $a_rcfile.tmp1
  775.   echo "$INST_RCSTRING stop" >> $a_rcfile.tmp1
  776.   ;;
  777. *)
  778.   ;;
  779. esac
  780.  
  781. if [ -f $a_rcfile.tmp1 ]; then
  782.   rm -f $a_rcfile
  783.   mv  $a_rcfile.tmp1 $a_rcfile
  784.   if [ -f $a_rcfile.tmp1 ]; then
  785.     rm -f $a_rcfile.tmp1
  786.   fi
  787. fi
  788.  
  789.     fi
  790.     fi
  791.  
  792.     # STATUS output
  793.     echo "8\b\c"
  794.  
  795.     # add to the crontab if requested
  796. crontab -l 2>/dev/null | grep -v "/visionfs checkpoint" | crontab 2>/dev/null
  797.  
  798.     if [ "$a_checkpoint" = "yes" ]; then
  799.       c_croncomm="$c_globscript checkpoint 1>/dev/null 2>/dev/console"
  800. # sunday at xxx o'clock
  801. ( crontab -l 2>/dev/null; echo "0 $a_time * * $a_day $c_croncomm" ) | crontab 2>/dev/null
  802.  
  803.     fi
  804.  
  805.     # make a copy into factory if created file
  806.     cp $config_filename $factory_filename 1>/dev/null 2>&1
  807.  
  808.     return $OK
  809. }
  810.  
  811. doPostExport()
  812. {
  813.  
  814.     # STATUS output
  815.     echo "9\b\c"
  816.  
  817.  
  818.     # copy the NET_vfsN.latebreaking.html file into the networking doc
  819.     # to update information for this release
  820.  
  821.     doc_file=NET_vfsN.latebreaking.html
  822.     new_doc_file=${REQDIR}/visionfs/${doc_file}.new
  823.     save_doc_file=${REQDIR}/visionfs/${doc_file}.save
  824.     old_doc_file=/usr/lib/scohelp/en_US.ISO8859-1/NET_vfs/$doc_file
  825.  
  826.     if [ -f  "$new_doc_file" -a -w "$old_doc_file" ]
  827.     then
  828.        cp $old_doc_file   $save_doc_file
  829.        cp $new_doc_file   $old_doc_file
  830.        chown bin:bin      $old_doc_file
  831.        chmod 664          $old_doc_file
  832.  
  833.        removef     BASEdoc "$old_doc_file" 1>&2
  834.        removef  -f BASEdoc 1>&2
  835.  
  836.        installf    BASEdoc "$old_doc_file" file 0664 bin bin 1>&2
  837.        installf -f BASEdoc 1>&2
  838.     fi
  839.  
  840.  
  841.     # STATUS output
  842.     echo "10\b\b\c"
  843.  
  844.  
  845.     # pkgadd doesn't update the file creation time/date
  846.     # on the file
  847.     if [ -f $c_globdir/bin/visionfs ]
  848.     then
  849.     touch $c_globdir/bin/visionfs
  850.     fi
  851.  
  852.     # print out the messages and start the server if requested
  853.  
  854.     if [ ! -z "$c_instsconb" -a -z "$c_usingsconb" ]; then
  855.       ccsWarning "$msg_instsconb"
  856.     fi
  857.  
  858.     # start the server
  859.  
  860.     if [ "$a_startnow" = "yes" ]; then
  861.       if [ "$iqmDriven" != TRUE ]
  862.       then
  863.     TMPOUT=/tmp/vfsout.$$
  864.     nohup $c_globdir/bin/visionfs start 1> $TMPOUT 2>&1
  865.     cat $TMPOUT
  866.     rm -f $TMPOUT
  867.       fi
  868.       if [ $? -ne 0 ]
  869.       then
  870.     ccsWarning "Failed to start visionfs server"
  871.       fi
  872.     else
  873.       if [ ! -z "$c_usingsconb" ]; then
  874.     ccsWarning "$msg_usingsconb"
  875.       fi
  876.     fi
  877.  
  878.     return $OK
  879. }
  880.  
  881.  
  882. #############################################################################
  883. #
  884. #    @(#) rebuild_file.sh_h 11.2 97/09/18 
  885. #
  886. # Standard routine to take a file that has been cut into pieces for
  887. # shipment as a package, and piece that file back together from its
  888. # component parts in a postinstall script.
  889. #
  890. # The routine looks for parts of the file as $1.Pnn, where nn are
  891. # digits, 01..99
  892. #
  893. # Arguments are:
  894. #
  895. #    $1    - name of the file to rebuild (the target)
  896. #    $2    - target file mode (e.g. 0711)
  897. #    $3    - target file owner (e.g. root)
  898. #    $4    - target file group (e.g. other)
  899. #    $5    - optional argument; the checksum for the completed file
  900. #
  901. # Return values are:
  902. #
  903. #    0    - success
  904. #    1    - failure (for example, piece of the file missing)
  905. #############################################################################
  906. rebuild_file()
  907. {
  908.     target="$1"
  909.     mode="$2"
  910.     owner="$3"; group="$4"
  911.     checksum="$5"
  912.  
  913.     # count the number of pieces to the file
  914.     piececount=`echo $target.P[0-9][0-9] | wc -w | tr -d ' '`
  915.     if [ $piececount -lt 1 ]; then
  916.         ccsError "$ME: rebuild_file: $piececount is invalid"
  917.         return $FAIL
  918.     else
  919.         if [ $piececount -gt 99 ]; then
  920.            ccsError "$ME: rebuild_file: $piececount is too many pieces"
  921.            return $FAIL
  922.         fi
  923.     fi
  924.  
  925.     # build the file by appending these pieces one after another
  926.         >$target
  927.     piece=0; while [ $piece -lt $piececount ]; do
  928.         extn="`expr $piece + 1`"
  929.         [ `expr length $extn` -lt 2 ] && extn="0$extn"
  930.         if [ -f $target.P$extn ]; then
  931.             cat $target.P$extn    >>$target
  932.             rm $target.P$extn      >/dev/null 2>&1
  933.                         echo "$target.P$extn" >> $REMOVEF_TMP
  934.         else
  935.                 ccsError "$ME: rebuild_file: missing file piece $extn of $target" 
  936.             return $FAIL
  937.         fi
  938.         piece=`expr $piece + 1`
  939.     done
  940.  
  941.         echo "$target f $mode $owner $group" >> $INSTALLF_TMP
  942.  
  943.         return $OK
  944. }
  945.  
  946.  
  947.  
  948. CreateVConf()
  949. {
  950.   if [ ! -f $VISION_FILE ] 
  951.   then
  952.     p_vfileheader="# Vision master configuration file."
  953.     echo $p_vfileheader                                          > $VISION_FILE
  954.   fi 
  955.  
  956.   temp=""
  957. if [ -f $GLOB_VISION_FILE ]; then
  958.     temp=`grep "^VISION_ADMINDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_ADMINDIR=/s///"`
  959. else
  960.     temp=""
  961. fi
  962.  
  963.   [ -z "$temp" ] && echo "VISION_ADMINDIR=$c_globdir/admin"     >> $VISION_FILE
  964.   temp=""
  965. if [ -f $GLOB_VISION_FILE ]; then
  966.     temp=`grep "^VISION_BINDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_BINDIR=/s///"`
  967. else
  968.     temp=""
  969. fi
  970.  
  971.   [ -z "$temp" ] && echo "VISION_BINDIR=$c_bindir"              >> $VISION_FILE
  972.   temp=""
  973. if [ -f $GLOB_VISION_FILE ]; then
  974.     temp=`grep "^VISION_DEBUGDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_DEBUGDIR=/s///"`
  975. else
  976.     temp=""
  977. fi
  978.  
  979.   [ -z "$temp" ] && echo "VISION_DEBUGDIR=$c_globdir/log"       >> $VISION_FILE
  980.   temp=""
  981. if [ -f $GLOB_VISION_FILE ]; then
  982.     temp=`grep "^VISION_DIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_DIR=/s///"`
  983. else
  984.     temp=""
  985. fi
  986.  
  987.   [ -z "$temp" ] && echo "VISION_DIR=$c_globdir"                >> $VISION_FILE
  988.   temp=""
  989. if [ -f $GLOB_VISION_FILE ]; then
  990.     temp=`grep "^VISION_ETCDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_ETCDIR=/s///"`
  991. else
  992.     temp=""
  993. fi
  994.  
  995.   [ -z "$temp" ] && echo "VISION_ETCDIR=$c_etcdir"              >> $VISION_FILE
  996.   temp=""
  997. if [ -f $GLOB_VISION_FILE ]; then
  998.     temp=`grep "^VISION_TMPDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_TMPDIR=/s///"`
  999. else
  1000.     temp=""
  1001. fi
  1002.  
  1003.   [ -z "$temp" ] && echo "VISION_TMPDIR=$c_globdir/log"         >> $VISION_FILE
  1004.   temp=""
  1005. if [ -f $GLOB_VISION_FILE ]; then
  1006.     temp=`grep "^VISION_TOOLSDIR=" $GLOB_VISION_FILE | tail -1 | sed -e "/^VISION_TOOLSDIR=/s///"`
  1007. else
  1008.     temp=""
  1009. fi
  1010.  
  1011.   [ -z "$temp" ] && echo "VISION_TOOLSDIR=$c_bindir/pctools"    >> $VISION_FILE
  1012.  
  1013.   chmod 644 $VISION_FILE
  1014. }
  1015.  
  1016.  
  1017.  
  1018. create_postisl_rcfiles()
  1019. {
  1020.  
  1021.   # create the isl postreboot file to do the silent default
  1022.   # configuration of the server. It runs the visionfs postinstall
  1023.   # script and removes itself if successful.
  1024.  
  1025.   cp ${REQDIR}/${PKGINST}/postisl_configure  $POST_ISL_RCFILE
  1026.   chmod 444 $POST_ISL_RCFILE
  1027.  
  1028.   # create the S90visionfs rcfile to start the server on system
  1029.   # bootup. This will run after the POST_ISL_RCFILE S90isl_visionfs
  1030.  
  1031.   cp ${REQDIR}/${PKGINST}/rc.full  /etc/rc3.d/$INST_RCFILE
  1032.   chmod 444 /etc/rc3.d/$INST_RCFILE
  1033.  
  1034. }
  1035.  
  1036. assemble_files()
  1037. {
  1038.  
  1039.   # STATUS output
  1040.   #echo "1\b\c"
  1041.  
  1042.   # set up some paths for removef and installf temp files
  1043.   # which are used at the end of this routine to update the
  1044.   # /var/sadm/install/contents file.
  1045.  
  1046.   REMOVEF_TMP=/tmp/$$_vfs.removef
  1047.   INSTALLF_TMP=/tmp/$$_vfs.installf
  1048.  
  1049.   # paste the big files that have been split up for distribution back
  1050.   # together
  1051.  
  1052.   VFSD_FILE=${c_dir}/bin/${SCOARCH}/vfsd
  1053.   rebuild_file $VFSD_FILE 555 bin bin
  1054.   [ "$?" != "0" ] && { 
  1055.     ccsError "ERROR: VisionFS - postinstall assembly of vfsd binary failed"
  1056.     return $FAIL
  1057.   }
  1058.  
  1059.   # paste the 16bit acrobat files that have been split up for distribution 
  1060.   # back together
  1061.  
  1062.   # STATUS output
  1063.   echo "2\b\c"
  1064.  
  1065.   ACROBAT16=${c_bindir}/pctools/en_US/docs/acrobat/16bit/ARCHIVE.Z
  1066.   rebuild_file $ACROBAT16 555 bin bin
  1067.   [ "$?" != "0" ] && { 
  1068.     ccsError "ERROR: VisionFS - postinstall assembly of 16bit/ARCHIVE.Z"
  1069.     return $FAIL
  1070.   }
  1071.  
  1072.   # paste the 32bit acrobat files that have been split up for distribution 
  1073.   # back together
  1074.  
  1075.   # STATUS output
  1076.   echo "3\b\c"
  1077.  
  1078.   ACROBAT32=${c_bindir}/pctools/en_US/docs/acrobat/32bit/ARCHIVE.Z
  1079.   rebuild_file $ACROBAT32 555 bin bin
  1080.   [ "$?" != "0" ] && { 
  1081.     ccsError "ERROR: VisionFS - postinstall assembly of 32bit/ARCHIVE.Z"
  1082.     return $FAIL
  1083.   }
  1084.  
  1085.   # update /var/sadm/install/contents file for visionfs - final 
  1086.  
  1087.   # STATUS output
  1088.   echo "4\b\c"
  1089.  
  1090.   [ -f "$REMOVEF_TMP" ] && {
  1091.     cat $REMOVEF_TMP  | removef  $PKGINST - 1>&2
  1092.     removef  -f $PKGINST  1>&2
  1093.     rm $REMOVEF_TMP
  1094.   }
  1095.  
  1096.   # STATUS output
  1097.   echo "5\b\c"
  1098.  
  1099.   [ -f "$INSTALLF_TMP" ] && {
  1100.     cat $INSTALLF_TMP | installf $PKGINST - 1>&2
  1101.     installf -f $PKGINST  1>&2
  1102.     rm $INSTALLF_TMP
  1103.   }
  1104.  
  1105.   return $OK
  1106. }
  1107.  
  1108. #------------------------------------------------------------------
  1109. #
  1110. #-------------------------------Main-------------------------------
  1111.  
  1112. #
  1113. # set up debug
  1114. #
  1115. SCRIPTS=/usr/sbin/pkginst
  1116. . ${SCRIPTS}/updebug
  1117. [ "$UPDEBUG" = YES ] && set -x
  1118.  
  1119. #
  1120. # set defaults
  1121. #
  1122. iqmDriven="FALSE"
  1123.  
  1124. # Also check SILENT-INSTALL just in case we want a silent NORMAL install
  1125. [ -n "$SILENT_INSTALL" ] && iqmDriven=TRUE
  1126.  
  1127.  
  1128. # There are three scenarious in which this script will run:
  1129. #
  1130. # $HOW_INSTALL=
  1131. #
  1132. # (a) NORMAL:           It is called from pkgadd'ing the individual package
  1133. #                       or from the network set installation.
  1134. #
  1135. # (b) ON_BFLOP:         It is called from foundation set installation on the
  1136. #                       boot floppies. This is the extraction phase. Pkgadd
  1137. #                       is run to do the initial load of the pkg.
  1138. #
  1139. # (c) POSTREBOOT:       It is called upon reboot from set installation on the
  1140. #                       boot floppies. This is the postreboot phase.
  1141. #
  1142. HOW_INSTALL=NORMAL
  1143. [ -f /tmp/VISIONFS_ON_BFLOP -o -f /etc/inst/scripts/postreboot.sh ] && {
  1144.         HOW_INSTALL=ON_BFLOP
  1145.         iqmDriven="TRUE"
  1146. }
  1147. [ -f $POST_ISL_RCFILE ] && {
  1148.         HOW_INSTALL=POSTREBOOT
  1149.         iqmDriven="TRUE"
  1150. }
  1151.  
  1152.  
  1153. if [ "${HOW_INSTALL}" = "ON_BFLOP" ] 
  1154. then
  1155.    # visionfs is being installed at isl time. A post install reboot
  1156.    # script is need to do the default configuration of the server cuz
  1157.    # we can't do it now.
  1158.    create_postisl_rcfiles
  1159. else 
  1160.    # we are in POSTREBOOT or NORMAL install mode and all files have 
  1161.    # been laid down but the server has not been configured. 
  1162.  
  1163.    if [ "${HOW_INSTALL}" = "POSTREBOOT" ]
  1164.    then
  1165.      # need to get our default configuration information
  1166.      getDefaults   
  1167.    else
  1168.      # NORMAL pkgadd install - request script created a SAVE_FILE
  1169.      # containing server configuration information.
  1170.      . ${SAVE_FILE}
  1171.    fi
  1172.  
  1173.    # vision.conf may not exist or may not contain stuff visionfs needs
  1174.    # so go check this out and create/update vision.conf with the
  1175.    # paramters we have. We don't want to write over a vision.conf file
  1176.    # if this is an upgrade. 
  1177.  
  1178.    CreateVConf
  1179.  
  1180.    # fix up echo characteristics for menuing if any
  1181. N=""
  1182. C=""
  1183. if echo -n | grep n > /dev/null
  1184. then
  1185.   C="\c"
  1186. else
  1187.   N="-n"
  1188. fi
  1189. _ss_headlines="--------------------------------------------------------------------------"
  1190.  
  1191.  
  1192.    # set message catalogs
  1193.    . ${REQDIR}/${PKGINST}/setup
  1194.    . ${REQDIR}/${PKGINST}/common
  1195.  
  1196.    # do the work
  1197.    doPostConfigure
  1198.    requestReturnVal="$?"
  1199.  
  1200.    [ "$requestReturnVal" = "0" ] && {
  1201.      doPostExport
  1202.      requestReturnVal="$?"
  1203.    }
  1204.  
  1205.  
  1206.    # cleanup a bit
  1207.    [ "$requestReturnVal" = "0" -a -f "$SAVE_FILE" ] && rm $SAVE_FILE
  1208.  
  1209. fi
  1210.  
  1211.  
  1212. exit $requestReturnVal
  1213.