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

  1. # @(#)postinstall    1.4
  2. # client postinstall script
  3. #
  4. #
  5. # write the path to the client images in the file /etc/netware/client.images
  6. #
  7. # Revision History:
  8. #
  9. # L000  20th Oct 1997   tonylo
  10. #       The script now invokes /usr/lib/scoadmin/account/make-owner to
  11. #       make current system owners have privileges to run NetWare server
  12. #       applications
  13. #
  14. #
  15.  
  16. #
  17.  
  18. [ -n "$DEBUG" ] && set -x
  19.  
  20. if [ "$RANDOM" = "$RANDOM" ]
  21. then
  22.     exec /usr/bin/winxksh $0 $*
  23. fi
  24.  
  25. trap "" 2
  26.  
  27. exec 2> /tmp/nwsclnt.post.err
  28.  
  29. ADMINUSER="/usr/bin/adminuser"
  30. GREP="/usr/bin/grep"
  31.  
  32. . /var/sadm/pkg/nwsclnt/install/misc_func    # dot in support functions
  33.  
  34. SetLocale
  35.  
  36. . ${LANGDEP_SCRIPTS}/set_strings        # load strings
  37.  
  38. function TFMSetup
  39. {
  40. [ -n "$DEBUG" ] && set -x
  41.  
  42.     #
  43.     # Give root user privileges to run all nws commands (GUI and non-GUI).
  44.     #
  45.     $ADMINUSER root | $GREP NWClientDisk > /dev/null 2>&1
  46.     if (( $? != 0 ))
  47.     then
  48.         # root does not have privs.
  49.         $ADMINUSER -a NWClientDisk:/usr/X/bin/NWClientDisk:allprivs root
  50.     fi
  51.  
  52. # L000 vvv
  53.         #
  54.         # If we're running from install on boot, no need to setup owner since
  55.         # the postreboot.sh will take care of it.  if, however, this is an
  56.         # after-the-fact pkgadd, the owner has to be setup here.
  57.         #
  58.         [ -f /etc/inst/scripts/postreboot.sh ] || {
  59.         set `grep mail= /var/sadm/install/admin/* | cut -f2 -d=`
  60.         while [ $# -ne 0 ]
  61.         do
  62.             [ "$1" != "root" ] && /usr/lib/scoadmin/account/make-owner $1 2>/dev/null
  63.             shift
  64.         done
  65.         }
  66. # L000 ^^^
  67.  
  68.  
  69.     return 0
  70. }
  71.  
  72. function LinkXCmds
  73. {
  74. [ -n "$DEBUG" ] && set -x
  75.  
  76.     DAYONEDIR=/usr/X/desktop/LoginMgr/DayOne
  77.     /usr/X/adm/upgrade/dtgetusers |while read line
  78.     do
  79.         USER=`echo $line | /usr/bin/cut -f1 -d:`
  80.         if [ ! -f $DAYONEDIR/$USER ]
  81.         then
  82.             continue
  83.         fi
  84.         HOMEDIR=`echo $line | /usr/bin/cut -f2 -d:`
  85.         LOCALE=`cat $DAYONEDIR/$USER`
  86.         ADMIN=`LC_ALL=$LOCALE /usr/bin/gettxt dayone:2 "Admin_Tools"`
  87.         NET=`LC_ALL=$LOCALE /usr/bin/gettxt dayone:32 "Networking"`
  88.  
  89.         # Check to see if desktop environment has Admin_Tools/Networking
  90.         if [ -d $HOMEDIR/$ADMIN/$NET ]
  91.         then
  92.             NWCLDISK=`LC_ALL=$LOCALE /usr/bin/gettxt dayone:87 "NetWare_Client_Disks"`
  93.             
  94.             [ ! -s $HOMEDIR/$ADMIN/$NET/$NWCLDISK ] && { 
  95.             ln -s /usr/X/bin/NWClientDisk $HOMEDIR/$ADMIN/$NET/$NWCLDISK 2>/dev/null 
  96.             }
  97.         fi
  98.     done
  99.  
  100.     #  Add commands (if not there) to the PrivTable, and give them their required privileges.
  101.     $GREP "NWS_Status" /usr/X/desktop/LoginMgr/PrivTable > /dev/null 2>&1
  102.     if [ $? -ne 0 ]
  103.     then
  104.         echo "nws:30:Administer NetWare Server    NWS_Status:/usr/X/bin/NWS_Status:allprivs,NWVolume_Setup:/usr/X/bin/NWVolume_Setup:allprivs,NWClientDisk:/usr/X/bin/NWClientDisk:allprivs,NWS_Licensing:/usr/X/bin/NWS_Licensing:allprivs,dsinstall:/usr/sbin/dsinstall:allprivs,dsrepair:/usr/sbin/dsrepair:allprivs,dsadmin:/usr/sbin/dsadmin:allprivs,nwserver:/usr/sbin/nwserver:allprivs,ndsbackup:/usr/sbin/ndsbackup:allprivs,ndsrestore:/usr/sbin/ndsrestore:allprivs,tsadmin:/usr/sbin/tsadmin:allprivs,nwshut:/usr/sbin/nwshut:allprivs,nwcm:/usr/sbin/nwcm:allprivs,pserver:/usr/sbin/pserver:allprivs,stopprint:/usr/sbin/stopprint:allprivs" >> /usr/X/desktop/LoginMgr/PrivTable
  105.     fi
  106.  
  107.     # Add NWClientDisk (if not there) to the Help_Desk.
  108.     $GREP "NWClientDisk" /usr/X/desktop/Help_Desk>/dev/null 2>&1
  109.     if [ $? -ne 0 ]
  110.     then
  111.         echo "NWClientDisk194,201{_HELPFILE=\"NWClientDisk/NWClientDisk.hlp\";_ICONLABEL=\"NWClientDisk\";_DESCRP=\"Creating NetWare Client Diskettes.\";_ICONFILE=\"nwcdisk32.icon\"}">>/usr/X/desktop/Help_Desk
  112.     fi
  113.  
  114.  
  115.     # Add entries for classdb files
  116.  
  117.     if [ -d /usr/X/lib/classdb ]
  118.     then
  119.         $GREP "INCLUDE nwsclnt\.cdb;" /usr/X/lib/classdb/dtadmin >/dev/null 2>&1
  120.         if [ $? -ne 0 ]
  121.         then
  122.             echo "INCLUDE nwsclnt.cdb;" >> /usr/X/lib/classdb/dtadmin
  123.         fi
  124.     fi
  125.  
  126.     #
  127.     # Give all existing system owners access to all NWS commands (GUI and command line)
  128.     # (do in subshell)
  129.     #
  130.     (
  131.         cd /usr/X/desktop/LoginMgr/Users
  132.         for USER in *
  133.         do
  134.             $GREP owner $USER > /dev/null 2>&1
  135.             if (( $? == 0 ))
  136.             then
  137.                 # found owner
  138.                 $ADMINUSER $USER | $GREP NWClientDisk > /dev/null 2>&1
  139.                 if (( $? != 0 ))
  140.                 then
  141.                     # Owner does not have privs.
  142.                     $ADMINUSER -a NWClientDisk:/usr/X/bin/NWClientDisk:allprivs $USER
  143.                 fi
  144.     
  145.                 # Add entry to permissions file
  146.                 $GREP "Administer NetWare Server" $USER > /dev/null 2>&1
  147.                 if (( $? != 0 ))
  148.                 then
  149.                     echo "nws:30:Administer NetWare Server" >> $USER
  150.                 fi
  151.             fi
  152.         done
  153.     )
  154.  
  155.     return 0
  156. }
  157.  
  158. TFMSetup
  159. #LinkXCmds
  160.  
  161. # create tmp file with IMAGES_PATH variable
  162. echo "$IMAGES_PATH" > /etc/netware/client.images
  163.  
  164. #
  165. # write version and number number of diskettes to revision
  166. #
  167. DOSWINVER="1.2"
  168. DOSWINNUM="5"
  169.  
  170. OS2VER="1.0"
  171. OS2NUM="6"
  172.  
  173. # create rev files for client images directories
  174.  
  175. echo $CLASSES
  176.  
  177. case "$CLASSES" in
  178.     "none doswin")
  179.         echo "$DOSWINVER"           > $IMAGES_PATH/doswin/revision
  180.         echo "$DOSWINNUM"          >> $IMAGES_PATH/doswin/revision
  181.         echo "DOS and Windows 3.x" >> $IMAGES_PATH/doswin/revision
  182.         echo $DOSWIN_DISK_LABEL_1  >> $IMAGES_PATH/doswin/revision
  183.         echo $DOSWIN_DISK_LABEL_2  >> $IMAGES_PATH/doswin/revision
  184.         echo $DOSWIN_DISK_LABEL_3  >> $IMAGES_PATH/doswin/revision
  185.         echo $DOSWIN_DISK_LABEL_4  >> $IMAGES_PATH/doswin/revision
  186.         echo $DOSWIN_DISK_LABEL_5  >> $IMAGES_PATH/doswin/revision
  187.  
  188.         # installf directory for images
  189.         installf $PKGINST $IMAGES_PATH/doswin d 0775 nwroot nwgroup
  190.  
  191.         chmod 644 $IMAGES_PATH/doswin/revision
  192.         chown nwroot $IMAGES_PATH/doswin/revision
  193.         chgrp nwgroup $IMAGES_PATH/doswin/revision
  194.         installf $PKGINST $IMAGES_PATH/doswin/revision v 0644 nwroot nwgroup
  195.     ;;
  196.     "none os2")
  197.         echo "$OS2VER"             > $IMAGES_PATH/os2/revision
  198.         echo "$OS2NUM"             >> $IMAGES_PATH/os2/revision
  199.         echo "OS/2"             >> $IMAGES_PATH/os2/revision
  200.         echo $OS2_DISK_LABEL_1  >> $IMAGES_PATH/os2/revision
  201.         echo $OS2_DISK_LABEL_2  >> $IMAGES_PATH/os2/revision
  202.         echo $OS2_DISK_LABEL_3  >> $IMAGES_PATH/os2/revision
  203.         echo $OS2_DISK_LABEL_4  >> $IMAGES_PATH/os2/revision
  204.         echo $OS2_DISK_LABEL_5  >> $IMAGES_PATH/os2/revision
  205.         echo $OS2_DISK_LABEL_6  >> $IMAGES_PATH/os2/revision
  206.  
  207.         # installf directory for images
  208.         installf $PKGINST $IMAGES_PATH/os2 d 0775 nwroot nwgroup
  209.  
  210.         chmod 644 $IMAGES_PATH/os2/revision
  211.         chown nwroot $IMAGES_PATH/os2/revision
  212.         chgrp nwgroup $IMAGES_PATH/os2/revision
  213.         installf $PKGINST $IMAGES_PATH/os2/revision v 0644 nwroot nwgroup
  214.     ;;
  215.     "none doswin os2")
  216.         # set up doswin
  217.         echo "$DOSWINVER"           > $IMAGES_PATH/doswin/revision
  218.         echo "$DOSWINNUM"          >> $IMAGES_PATH/doswin/revision
  219.         echo "DOS and Windows 3.x" >> $IMAGES_PATH/doswin/revision
  220.         echo $DOSWIN_DISK_LABEL_1  >> $IMAGES_PATH/doswin/revision
  221.         echo $DOSWIN_DISK_LABEL_2  >> $IMAGES_PATH/doswin/revision
  222.         echo $DOSWIN_DISK_LABEL_3  >> $IMAGES_PATH/doswin/revision
  223.         echo $DOSWIN_DISK_LABEL_4  >> $IMAGES_PATH/doswin/revision
  224.         echo $DOSWIN_DISK_LABEL_5  >> $IMAGES_PATH/doswin/revision
  225.  
  226.         # installf directory for images
  227.         installf $PKGINST $IMAGES_PATH/doswin d 0775 nwroot nwgroup
  228.  
  229.         chmod 644 $IMAGES_PATH/doswin/revision
  230.         chown nwroot $IMAGES_PATH/doswin/revision
  231.         chgrp nwgroup $IMAGES_PATH/doswin/revision
  232.         installf $PKGINST $IMAGES_PATH/doswin/revision v 0644 nwroot nwgroup
  233.  
  234.  
  235.         # set up os2
  236.         echo "$OS2VER"             > $IMAGES_PATH/os2/revision
  237.         echo "$OS2NUM"             >> $IMAGES_PATH/os2/revision
  238.         echo "OS/2"             >> $IMAGES_PATH/os2/revision
  239.         echo $OS2_DISK_LABEL_1  >> $IMAGES_PATH/os2/revision
  240.         echo $OS2_DISK_LABEL_2  >> $IMAGES_PATH/os2/revision
  241.         echo $OS2_DISK_LABEL_3  >> $IMAGES_PATH/os2/revision
  242.         echo $OS2_DISK_LABEL_4  >> $IMAGES_PATH/os2/revision
  243.         echo $OS2_DISK_LABEL_5  >> $IMAGES_PATH/os2/revision
  244.         echo $OS2_DISK_LABEL_6  >> $IMAGES_PATH/os2/revision
  245.  
  246.         # installf directory for images
  247.         installf $PKGINST $IMAGES_PATH/os2 d 0775 nwroot nwgroup
  248.  
  249.         chmod 644 $IMAGES_PATH/os2/revision
  250.         chown nwroot $IMAGES_PATH/os2/revision
  251.         chgrp nwgroup $IMAGES_PATH/os2/revision
  252.         installf $PKGINST $IMAGES_PATH/os2/revision v 0644 nwroot nwgroup
  253.     ;;
  254. esac
  255.  
  256. installf $PKGINST $IMAGES_PATH d 0775 nwroot nwgroup
  257.  
  258. installf -f $PKGINST
  259.  
  260. #
  261. # if this is last package to be installed display final install screen
  262. # if SMART_START do not display anything
  263. #
  264. if [ "$SMART_START" = "FALSE" ]
  265. then
  266.     if [ -f /tmp/$PKGINST ]
  267.     then
  268.         # only display if the package addition was successful
  269.         /usr/bin/pkginfo -i nwsrvr > /dev/null 2>&1
  270.         if [ "$?" = "0" ]
  271.         then
  272.             # Initialize winxksh
  273.             . /usr/lib/winxksh/winrc
  274.             . /usr/lib/winxksh/scr_init
  275.  
  276.             display -w "$INSTALL_WHAT_NEXT_WITH_REBOOT" \
  277.                 -fg ${WHITE} -bg ${BLUE} \
  278.                 -current "footer $HIT_ANY_KEY_TO_END"
  279.  
  280.             input_handler
  281.             wclose $CURWIN
  282.             footer ""
  283.  
  284.             ClearScreen
  285.             call endwin
  286.         fi
  287.     fi
  288. fi
  289.  
  290. #
  291. # Install SCOadmin stuff
  292. #
  293.  
  294. /usr/bin/scoadmin -p NetWare -f -c /usr/lib/scoadmin/NetWare/NWClientDisk.obj 
  295.  
  296. exit 0
  297.