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

  1. #ident    "@(#)postinstall    16.1    98/03/03"
  2.  
  3. PKGMSG=${SETINST}.pkg
  4. LOCALE=${LC_ALL:-${LC_MESSAGES:-${LANG:-"C"}}}
  5. trap "rm -f /tmp/*$$; exit" 0 2
  6.  
  7. if [ -f /etc/rc2.d/S02POSTINST ]
  8. then
  9.     TDEV=/dev/console
  10. else
  11.     TDEV=/dev/tty
  12. fi
  13.  
  14. rm -f /tmp/pkgfail
  15. #
  16. #  Postinstall script for set installation.  Reports, using
  17. #  the menu tool, on what packages installed correctly and
  18. #  what packages did not. 
  19. #
  20.  
  21. #
  22. # Link the message file into the system message directory
  23. #
  24.  
  25. if [ ! -f /usr/lib/locale/${LOCALE}/LC_MESSAGES/${PKGMSG} ]
  26. then
  27.    if [ -f ${REQDIR}/inst/locale/${LOCALE}/${PKGMSG} -a \
  28.     -d /usr/lib/locale/${LOCALE}/LC_MESSAGES ]
  29.    then
  30.     cp ${REQDIR}/inst/locale/${LOCALE}/${PKGMSG} \
  31.        /usr/lib/locale/${LOCALE}/LC_MESSAGES
  32.    fi
  33. fi
  34. #
  35. #  Set up the menu and and upgrade directory to be locale specific
  36. #
  37. ROOTMENU=/etc/inst/locale/${LOCALE}/menus
  38. [ -d ${ROOTMENU} ] || mkdir -p ${ROOTMENU}
  39.  
  40. UPGRADE_MSGS=${ROOTMENU}/upgrade
  41. [ -d ${UPGRADE_MSGS} ] || mkdir -p ${UPGRADE_MSGS}
  42.  
  43. MENU_DIR=${ROOTMENU}/${SETINST}
  44. [ -d ${MENU_DIR} ] || mkdir -p ${MENU_DIR}
  45.  
  46. UPGRADE_STORE=/etc/inst/save.user
  47. #
  48. # if set.9 is there, then the rest should also be there
  49. #
  50. if [ ! -f ${MENU_DIR}/set.9 ]
  51. then
  52.    if [ -f ${REQDIR}/inst/locale/${LOCALE}/${SETINST}/set.1 ]
  53.    then
  54.     cp ${REQDIR}/inst/locale/${LOCALE}/${SETINST}/set.* ${MENU_DIR}
  55.    else
  56.     cp ${REQDIR}/${SETINST}/set.* ${MENU_DIR}
  57.    fi
  58. fi
  59.  
  60. cp ${MENU_DIR}/set.6 /tmp/set.6 > /dev/null 2>&1
  61. i=0 
  62. PKGS_PER_SCREEN=10
  63. >/tmp/catchit
  64. while read PKGABBR PKGNAME
  65. do
  66.     i=`expr $i + 1`
  67.     echo $i >/tmp/catchit
  68.     pkginfo -i ${PKGABBR} > /dev/null 2>&1
  69.     if [ $? = 0 ]
  70.     then
  71.         #
  72.         #  Successful install.  Tack on to .top of /tmp/set.6
  73.         #
  74.         #  Note that tabs must not be used in input to menu command.
  75.         pfmt -s nostd -g ${PKGMSG}:61 "        Succeeded       %s\n" "${PKGNAME}" >> /tmp/set.6 2>&1
  76.     else
  77.         #
  78.         #  Unsuccessful install.  Tack on to .top of /tmp/set.6
  79.         #  and touch pkgfail to let menu know that pkgs have failed.
  80.         #
  81.         > /tmp/pkgfail
  82.         #  Note that tabs must not be used in input to menu command.
  83.         pfmt -s nostd -g ${PKGMSG}:62 "        Failed          %s\n" "${PKGNAME}" >> /tmp/set.6 2>&1
  84.     fi
  85.     [ "$i" = "$PKGS_PER_SCREEN" ] && {
  86.     menu -f /tmp/set.6 -o /tmp/out < ${TDEV} > ${TDEV} 2>/dev/null
  87.     cp ${MENU_DIR}/set.6 /tmp/set.6 
  88.     i=0
  89.     echo $i >/tmp/catchit
  90.     }
  91.  
  92. done < /tmp/name_final_y
  93. i=`cat /tmp/catchit 2>/dev/null`
  94.  
  95. ############### Begin UPGRADE/OVERLAY ############
  96.  
  97. [ -f $UPGRADE_STORE/nomrg.list ] && {
  98.     # NOMRGLIST is the list of pkgs whose system files are not combined.
  99.     read NOMRGLIST <$UPGRADE_STORE/nomrg.list
  100.     rm -f $UPGRADE_STORE/nomrg.list
  101.  
  102.     # NOMRGMSG is the name of the file containing the 'nomerge msg'
  103.     NOMRGMSG=$UPGRADE_MSGS/mergefiles.4
  104.  
  105.     export NOMRGLIST NOMRGMSG
  106. }
  107.  
  108. [ -f $UPGRADE_STORE/mrgfail.list ] && {
  109.     # MRGFAILLIST is the list of pkgs for which 'up_merge' failed
  110.     read MRGFAILLIST <$UPGRADE_STORE/mrgfail.list
  111.     rm -f $UPGRADE_STORE/mrgfail.list
  112.  
  113.     #MRGFAILMSG is the name of the file containing 'up_merge failed' msg
  114.     MRGFAILMSG=$UPGRADE_MSGS/mergefiles.2
  115.  
  116.     # MRGFAILFILES is the list of specific system files for various 
  117.     # pkgs for which  up_merge failed
  118.  
  119.     MRGFAILFILES=$UPGRADE_STORE/mrgfail.files
  120.     export MRGFAILLIST MRGFAILMSG MRGFAILFILES
  121. }
  122.  
  123. ############### End UPGRADE/OVERLAY ############
  124.  
  125. # If the menu is finished but not printed, print it.
  126. [ -f /tmp/pkgfail ] || [ "${NOMRGLIST}" -o "${MRGFAILLIST}" ] || {
  127.     if [ "$i" != 0 ]
  128.     then 
  129.         menu -f /tmp/set.6 -o /tmp/out < ${TDEV} >${TDEV} 2>/dev/null
  130.         rm -f $UPGRADE_STORE/mrgfail.files
  131.     fi
  132.     exit 0
  133. }
  134.  
  135. SCR_LNGH=3
  136. if [ "$i" -ge "$SCR_LNGH" ] 
  137. then
  138.     # Menu too full for additional messages, print it now.
  139.     menu -f /tmp/set.6 -o /tmp/out < ${TDEV} >${TDEV} 2>/dev/null
  140.     cp ${MENU_DIR}/set.9 /tmp/menu.last.$$
  141. fi
  142.  
  143. if [ "$i" != 0 -a "$i" -lt "$SCR_LNGH" ]
  144. then
  145.     # Menu has space for additional messages, append to it.
  146.     cp /tmp/set.6 /tmp/menu.last.$$
  147. fi
  148.  
  149. if [ "$i" = 0 ]
  150. then
  151.     # Create new menu for messages.
  152.     cp ${MENU_DIR}/set.9 /tmp/menu.last.$$
  153. fi
  154.  
  155. #
  156. #  Put the finishing touches on this menu and print it
  157. #
  158. [ -f /tmp/pkgfail ] && echo  >> /tmp/menu.last.$$
  159. [ -f /tmp/pkgfail ] && pfmt -s nostd -g ${PKGMSG}:3 "Details on any failures are detailed in electronic mail sent to the\nlogin ID \"root\"\n" >> /tmp/menu.last.$$ 2>&1
  160. [ "${NOMRGLIST}" -o "${MRGFAILLIST}" ] && echo " " >> /tmp/menu.last.$$
  161. [ "${NOMRGLIST}" -o "${MRGFAILLIST}" ] && pfmt -s nostd -g ${PKGMSG}:4 "Press the 'F1' key for information about your System Setup Files.\n" >> /tmp/menu.last.$$ 2>&1
  162. echo  >> /tmp/menu.last.$$
  163.  
  164. menu -f /tmp/menu.last.$$ -o /tmp/out < ${TDEV} >${TDEV} 2>/dev/null
  165.  
  166. rm -f $UPGRADE_STORE/mrgfail.files
  167.