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

  1. #!/bin/sh -x   
  2. #ident    "@(#)postinstall    1.6"
  3. #  Postinstall script for the LS
  4. #
  5.  
  6. HOW_INSTALL=NORMAL
  7. # The following HOW_INSTALL clauses are order dependent
  8.  
  9. # We are rebooting after installation if the script
  10. # /etc/rc2.d/S02POSTINST exists
  11. [ -f /etc/rc2.d/S02POSTINST ] && {
  12.     HOW_INSTALL=POSTREBOOT
  13. }
  14.  
  15. # We are on the boot floppies if:
  16. # the script /etc/inst/scripts/postreboot.sh exists 
  17. [ -f /etc/inst/scripts/postreboot.sh ] && {
  18. #    HOW_INSTALL=ON_BFLOP
  19. exit 0
  20. }
  21.  
  22. if $SILENT_INSTALL
  23. then
  24.     pfmt -s nostd -g ls.pkg:5 "Setting up chosen locales . . .\n"
  25. fi
  26.  
  27. ## Read in the value of PKGINSTALL_TYPE
  28. #UPGFILE=/etc/inst/save.user/${PKGINST}.env
  29. #[ -r "$UPGFILE" ] && . $UPGFILE
  30. #
  31. # iconv_data was changed from a regular file in 2.01 to
  32. # a build script in 2.1.  As is currently stands, after
  33. # an upgrade, this file will have redundant information in
  34. # it.  This doesn't break anything, but isn't particularly
  35. # pretty, either.
  36. # This space is a place holder for some cleanup logic that
  37. # should be added for the UPGRADE/UPGRADE2 cases.
  38.  
  39. ROOT=/
  40. LSVAR=/var/opt/ls
  41. ICONV=/usr/lib/iconv
  42.  
  43. defadm locale LANG="$LOCALE" 2>/dev/null
  44.  
  45. #
  46. # system definitions for a locale are in the file
  47. #    /usr/lib/locale/${LOCALE}/locale_def
  48. #
  49. if [ "$LOCALE" != "C" ]
  50. then
  51.     LOCALEDEF=/usr/lib/locale/${LOCALE}/locale_def
  52. else
  53. # this will allow non-US ASCII keyboards to work properly in the C locale
  54.     if [ "$KEYBOARD" != "NONE" ]
  55.     then
  56.         LOCALEDEF=/usr/lib/locale/en_US/locale_def
  57.     fi
  58. fi
  59.  
  60. if [ ! -z "${LOCALEDEF}" -a -r "${LOCALEDEF}" ]
  61.  
  62. then
  63.     . ${LOCALEDEF}
  64.     if [ "$LOC_MAPCHAN" != "" ]
  65.     then
  66.         defadm keyboard MAPCHAN="${LOC_MAPCHAN} " 2>/dev/null
  67.     else
  68.         defadm -d keyboard MAPCHAN 2>/dev/null
  69.     fi
  70.     if [ "$LOC_TERM" != "" ]
  71.     then
  72.         defadm coterm TERM="${LOC_TERM} " 2>/dev/null
  73.     else
  74.         defadm coterm TERM="AT386 " 2>/dev/null
  75.     fi
  76.     if [ "$LOC_M_TERM" != "" ]
  77.     then
  78.         defadm coterm-M TERM="${LOC_M_TERM} " 2>/dev/null
  79.     else
  80.         defadm coterm-M TERM="AT386-M " 2>/dev/null
  81.     fi
  82.     if [ "$LOC_COFONT" != "" ]
  83.     then
  84.         defadm cofont COFONT="${LOC_COFONT} " 2>/dev/null
  85.     else
  86.         defadm -d cofont COFONT 2>/dev/null
  87.     fi
  88.     #
  89.     # set MBCONSOLE in coterm if locale requires it.
  90.     #
  91.     if [ "$LOC_MBCONSOLE" = "yes" ]
  92.     then
  93.         defadm coterm MBCONSOLE="$LOC_MBCONSOLE" 2>/dev/null
  94.     fi
  95.  
  96.     if [ "$GRAPHICS" = "YES" ]
  97.     then
  98.         if [ "$LOC_XMODIFIERS" != "" ]
  99.         then
  100.             defadm Xim XMODIFIERS="$LOC_XMODIFIERS " 2>/dev/null
  101.         else
  102.             defadm -d Xim XMODIFIERS 2>/dev/null
  103.         fi
  104.  
  105.         if [ "$KEYBOARD" != "NONE" ]
  106.         then
  107.             defadm keyboard XKEYBOARD="$KEYBOARD " 2>/dev/null
  108.         else
  109.             defadm keyboard XKEYBOARD="US " 2>/dev/null
  110.         fi
  111.         defadm Xim XNLSPATH="/usr/X/lib/Xsi/\$XKEYBOARD " 2>/dev/null
  112.         if [ "$LOC_NUMLOCK" != "" ]
  113.         then
  114.             defadm keyboard NUMLOCK="$LOC_NUMLOCK " 2>/dev/null
  115.         else
  116.             defadm -d keyboard NUMLOCK 2>/dev/null
  117.         fi
  118.         if [ "$LOC_SHIFTDOWN" != "" ]
  119.         then
  120.             defadm keyboard SHIFTDOWN="$LOC_SHIFTDOWN " 2> /dev/null
  121.         else
  122.             defadm -d keyboard SHIFTDOWN 2> /dev/null
  123.         fi
  124.  
  125.         XSCONFIG_DIR=/usr/lib/X11/xsconfig
  126.         if [ -d ${XSCONFIG_DIR} ]
  127.         then
  128.             savepwd=`pwd`
  129.             cd ${XSCONFIG_DIR}
  130.             if ${XSCONFIG_DIR}/xsconfig.sh $KEYBOARD && [ -f .Xsco.cfg ]
  131.             then
  132.                 mv ${XSCONFIG_DIR}/.Xsco.cfg /usr/lib/X11
  133.             else
  134.                 echo "ls: couldn't create .Xsco.cfg"
  135.             fi
  136.             cd $savepwd
  137.         fi
  138.  
  139.     fi
  140.     if [ "$LOC_KCODESET" != "" ] && [ "$LOCALE" != "C" -o "$HOW_INSTALL" = "NORMAL" ]
  141.     then
  142.         savepwd=`pwd`
  143.         cd /usr/lib/iconv/kmods/$LOC_KCODESET
  144.         /etc/conf/bin/idinstall -k -u ccnv
  145.         /etc/conf/bin/idbuild  -M ccnv 2>&1 > /dev/null
  146.         cd $savepwd
  147.     fi
  148. else
  149. #
  150. #  If there is not locale file, 
  151. #  test for ISO8859x locales and set values otherwise,
  152. #  make sure things are set to the default
  153. #
  154.  
  155.     TESTLOCALE=`echo $LOCALE | cut -f2 -d.`
  156.     
  157.     TESTCASE=`echo $TESTLOCALE | cut -f1 -d-`
  158.  
  159.     if [ "$TESTCASE" = "ISO8859" ]
  160.     then  
  161.  
  162.         case  $TESTLOCALE in
  163.  
  164.         ISO8859-2)     COFONT_VALUE=8859-2
  165.                 MAPCHAN_VALUE=88592.dk;;
  166.  
  167.         ISO8859-5)    COFONT_VALUE=8859-5
  168.                 MAPCHAN_VALUE=88591.dk;;
  169.  
  170.         ISO8859-7)    COFONT_VALUE=8859-7
  171.                 MAPCHAN_VALUE=88597.dk;;
  172.  
  173.         ISO8859-9)    COFONT_VALUE=8859-9
  174.                 MAPCHAN_VALUE=88599.dk;;
  175.  
  176.         esac
  177.  
  178.         defadm keyboard MAPCHAN="/usr/lib/mapchan/$MAPCHAN_VALUE" 2>/dev/null
  179.         defadm cofont COFONT="$COFONT_VALUE" 2>/dev/null    
  180.         defadm coterm TERM=AT386-ie 2>/dev/null
  181.         defadm coterm MBCONSOLE="no" 2>/dev/null
  182.                 defadm coterm-M TERM="AT386-M" 2>/dev/null
  183.  
  184.                 XSCONFIG_DIR=/usr/lib/X11/xsconfig
  185.                 if [ -d ${XSCONFIG_DIR} ]
  186.                 then
  187.                         savepwd=`pwd`
  188.                         cd ${XSCONFIG_DIR}
  189.                         if ${XSCONFIG_DIR}/xsconfig.sh $KEYBOARD && [ -f .Xsco.cfg ]
  190.                         
  191.             then
  192.                                 mv ${XSCONFIG_DIR}/.Xsco.cfg /usr/lib/X11
  193.                         else
  194.  
  195.                                 echo "ls: couldn't create .Xsco.cfg"
  196.                         fi
  197.  
  198.                         cd $savepwd
  199.  
  200.                 fi
  201.  
  202.     
  203.     else
  204.  
  205.  
  206.         if [ "$HOW_INSTALL" = "NORMAL" ]
  207.         then
  208.             if [ -x /usr/bin/pcfont ] ; then
  209.                 /usr/bin/pcfont > /dev/null 2> /dev/null
  210.             fi
  211.             if [ -x /usr/bin/mapkey ] ; then
  212.                 /usr/bin/mapkey > /dev/null 2> /dev/null
  213.             fi
  214.                 /usr/bin/mapchan -n > /dev/null 2> /dev/null
  215.             fi
  216.         defadm  cofont COFONT 2>/mev/null
  217.         defadm coterm TERM="AT386" 2>/dev/null
  218.         defadm coterm-M TERM="AT386-M" 2>/dev/null
  219.  
  220.  
  221.  
  222.  
  223.         defadm -d keyboard KEYBOARD XKEYBOARD SHIFTDOWN MAPCHAN XNLSPATH XMODIFIERS NUMLOCK 2>/dev/null
  224.         defadm -d Xim XMODIFIERS 2>/dev/null
  225.  
  226.         fi
  227.     fi
  228.  
  229. #
  230. #  Record what's been configured for the LS
  231. #  Overwrite what's there.
  232. #
  233.  
  234. echo LOCALE=\"$LOCALE\" > $LSVAR/config
  235. echo KEYBOARD=\"$KEYBOARD\" >> $LSVAR/config
  236. echo DOALL=\"$DOALL\" >> $LSVAR/config
  237. echo LANGUAGE=\"$LANGUAGE\" >> $LSVAR/config
  238. echo TERR=\"$TERR\" >> $LSVAR/config
  239. echo GRAPHICS=\"$GRAPHICS\" >> $LSVAR/config
  240. #echo CLASSES=\"$CLASSES\" >> $LSVAR/config
  241.  
  242. if [ "$GRAPHICS" = "YES" ]
  243. then
  244. #
  245. # Turn on input method for the C locale (so foreign keyboards still work)
  246. #
  247.  
  248.  
  249. if [ "$KEYBOARD" != "NONE" ] ; then
  250.     echo >>/usr/X/lib/locale/C/ol_locale_def "\
  251. !Next line installed by ls
  252. *inputMethod:Local"
  253. fi
  254.  
  255. #
  256. # set up fonts
  257. #
  258. # fonts.alias is handled through a build script.
  259. # All that is needed here is to run mkfontdir, if it exists
  260. #
  261. if [ "$LANGUAGE" = "ja" -o "$DOALL" = "YES" ]
  262. then
  263.     if [ -x /usr/bin/X11/mkfontdir -a -d /usr/lib/X11/fonts/misc ]
  264.     then
  265.     /usr/bin/X11/mkfontdir /usr/lib/X11/fonts/misc
  266.     fi
  267. fi
  268. #
  269. # assign to flist the names of any fonts that we are not installing.
  270. # font.list is of the form:
  271. # locale  font_file_pathname
  272. #
  273. #flist="`egrep -v \"^#|^${LANGUAGE}[     ]|^${LANGUAGE}_|^${LANGUAGE}\.[0-9a-zA-Z]*[     ]|^[^     ]*_${TERR}[     ]|^[^     ]*_${TERR}\.[0-9a-zA-Z]*[     ]\" $LSVAR/font.list|cut -f2- - | cut -d' ' -f2- - `"
  274. #
  275. #  Store packaging info
  276. #
  277. fi
  278.  
  279.  
  280. #
  281. # All done - exit with correct exit code.
  282. #
  283. exit 0
  284.  
  285.