#! /bin/sh # # Copyright (c) 1996 by Sun Microsystems, Inc. # # # postinstall script of AnswerBook2 # # Routine to set LC_ALL to C and save the original value set_LC_all() { lc_all=$LC_ALL LC_ALL=C export LC_ALL } reset_LC_all() { LC_ALL=$lc_all export LC_ALL } # Routine to set LC_CTYPE to C and save the original value set_LC_ctype() { lc_ctype=$LC_CTYPE LC_CTYPE=C export LC_CTYPE } reset_LC_ctype() { LC_CTYPE=$lc_ctype export LC_CTYPE } # Given an iconv encoding name, determine if the iconv package # is installed on the system. # List of supported encoding/iconv package is listed on ab2_lang_info.template # file. # is_iconv_install() { if (test $# -ne 1) then return 1 fi # we need to have this iconv pkg if [ ! -f $PKG_INSTALL_ROOT/var/sadm/pkg/SUNWuiu8/pkginfo ] then if [ ! -z "$R_OPTION" ] then if [ ! -f /var/sadm/pkg/SUNWuiu8/pkginfo ] then return 1 fi fi fi iconv_encoding=$1 ICONV_LIST=/tmp/iconv_list.$$ if [ -f ${BASEDIR}/lib/ab2/dweb/data/config/ab2_lang_info.template ] then ICONV_FILE=${BASEDIR}/lib/ab2/dweb/data/config/ab2_lang_info.template else return 1 fi START_LINE=`/usr/bin/awk '$1 == "dwSetParam" && /Ab2Iconv {/ {print NR}' ${ICONV_FILE}` END_LINE=`/usr/bin/grep -c . ${ICONV_FILE}` BLANK_LINE=`/usr/bin/grep -c '^$' ${ICONV_FILE}` END_LINE=`expr $END_LINE + $BLANK_LINE` `/usr/bin/sed -n -e ''${START_LINE}','${END_LINE}'p' < ${ICONV_FILE} > ${ICONV_LIST}` unset FOUND FOUND=`/usr/bin/grep $iconv_encoding ${ICONV_LIST}` 'rm' -f ${ICONV_LIST} if [ ! -z "$FOUND" ] then PKG_NAME=`echo $FOUND | /usr/bin/awk '{print $2}'` if [ ! -z "$PKG_NAME" ] then if [ -f $PKG_INSTALL_ROOT/var/sadm/pkg/$PKG_NAME/pkginfo ] then return 0 else if [ -f /var/sadm/pkg/$PKG_NAME/pkginfo ] then return 0 fi fi fi fi return 1 } # add help collection # add_help_collection() { # install help collection # get the locale if [ ! -d ${BASEDIR}/lib/ab2/data/docs/Help ] then return fi HELP_INFO=/tmp/collinfo.$$ HELP_LANG=`/usr/bin/ls ${BASEDIR}/lib/ab2/data/docs/Help/` # for each locale echo "Installing help collections ..." for i in ${HELP_LANG}; do # make sure that it is a collection structure if test -d ${BASEDIR}/lib/ab2/data/docs/Help/$i/Help/books && test -f ${BASEDIR}/lib/ab2/data/docs/Help/$i/Help/booklist.txt ; then # go ahead and add this help collection # install help collection only when it is not there HELP_EXIST=`/usr/bin/fgrep Help_${i} ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template` if [ -z "$HELP_EXIST" ] then # what title to use? unset COL_TITLE unset UTF8_TITLE # do we have collinfo file (use the title there if found)? if [ -f ${BASEDIR}/lib/ab2/data/docs/Help/$i/Help/collinfo ] ; then if [ ! -z "$LC_ALL" ] then set_LC_all COL_TITLE=`/usr/bin/fgrep title ${BASEDIR}/lib/ab2/data/docs/Help/$i/Help/collinfo | /usr/bin/cut -d'"' -f2,2` reset_LC_all else set_LC_ctype COL_TITLE=`/usr/bin/fgrep title ${BASEDIR}/lib/ab2/data/docs/Help/$i/Help/collinfo | /usr/bin/cut -d'"' -f2,2` reset_LC_ctype fi # deal with non english title, get collection encoding unset COL_ENCODING COL_ENCODING=`/usr/bin/fgrep encoding ${BASEDIR}/lib/ab2/data/docs/Help/$i/Help/collinfo | /usr/bin/awk '{print $2}'` unset TO_ENCODING if [ ! -z "${COL_ENCODING}" ] then # encoding information is available # set the UTF-8 encoding name if [ "${COL_ENCODING}" = "ko_KR-euc" ] then TO_ENCODING="ko_KR-UTF-8" else TO_ENCODING="UTF-8" fi # convert the title to UTF-8 encoding if [ ! -z "${COL_TITLE}" ] then if (test ! -z "${COL_ENCODING}") then unset OK_TO_CONVERT is_iconv_install ${COL_ENCODING} if [ $? -eq 0 ] then OK_TO_CONVERT="TRUE" unset NEW_TITLE NEW_TITLE=`echo ${COL_TITLE} | iconv -f ${COL_ENCODING} -t ${TO_ENCODING}` UTF8_TITLE=$NEW_TITLE fi fi else # title not available from collinfo file COL_TITLE="AnswerBook2 Help collection in ${i} locale" fi fi fi # we don't want to install non-english title collection # when iconv is not present if (test "$OK_TO_CONVERT" = "TRUE") || (test -z "${COL_ENCODING}") then # save original copy OLD_AB2DB=/tmp/old_ab2_collections.template.$$ dwLIST=`/usr/bin/grep dwCollectionList ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template` if [ -z "$dwLIST" ] then cp ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template $OLD_AB2DB echo "dwCollectionList {" >> $OLD_AB2DB echo " Help_${i} dwCollection" >> $OLD_AB2DB echo "}" >> $OLD_AB2DB echo "" >> $OLD_AB2DB else if [ ! -z "$LC_ALL" ] then set_LC_all awk '{print} ; /dwCollectionList {/{printf " %s dwCollection\n", HELP_NAME}' HELP_NAME=Help_${i} ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template > ${OLD_AB2DB} reset_LC_all else set_LC_ctype awk '{print} ; /dwCollectionList {/{printf " %s dwCollection\n", HELP_NAME}' HELP_NAME=Help_${i} ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template > ${OLD_AB2DB} reset_LC_ctype fi fi echo "dwSetParam Help_${i} {" >> ${OLD_AB2DB} echo " location ${REAL_BASEDIR}/lib/ab2/data/docs/Help/${i}/Help" >> ${OLD_AB2DB} if [ ! -z "$COL_TITLE" ] then if [ ! -z "$UTF8_TITLE" ] then echo " encoding UTF-8" >> ${OLD_AB2DB} echo " from_encoding ${COL_ENCODING}" >> ${OLD_AB2DB} echo " title \"${UTF8_TITLE}\"" >> ${OLD_AB2DB} else echo " title \"${COL_TITLE}\"" >> ${OLD_AB2DB} fi else echo " title \"Help\"" >> ${OLD_AB2DB} fi echo " type EbtCollection" >> ${OLD_AB2DB} echo "}" >> ${OLD_AB2DB} cp ${OLD_AB2DB} ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template rm -f ${OLD_AB2DB} echo "Added : ${COL_TITLE}" else # no iconv installed and the collection has encoding echo "Ignoring AnswerBook2 Help Collection in ${i} locale." fi fi fi done } # This script extracts/creates FPI of both SGML and legacy book # from collections defined in ab2_collections.template and ab1_cardcatalog. # The FPI will be stored in local.socat # create_socat() { if [ ! -z "$LC_ALL" ] then set_LC_all else set_LC_ctype fi if [ ! -f $AB2DB ] then return fi if [ -z "$AB2SOCAT" ] then return fi # store list of collection in tmp file TMP_LIST=/tmp/col_list.$$ # backup the socat file #/usr/bin/cp $AB2SOCAT $AB2SOCAT.bak # working socat file TMP_FILE=/tmp/local.socat.$$ # get a list of AB2 collections `awk '$1 != "dwCollectionList" && /dwCollection/{printf "%s\n", $1}' ${AB2DB} | /usr/bin/grep -v "#" > ${TMP_LIST}` # number of AB2 collection NUM=`/usr/bin/grep -c . ${TMP_LIST}` NUM=`expr $NUM + 1` i=1 # go thru each collection while (test $i -lt $NUM) do # obtain collection name (id) according to the position COL_NAME=`/usr/bin/sed -n -e ''${i}'p' ${TMP_LIST}` # Find the section that description the collection (lines numbers) # should be dwSetParam col_id { ... } LINE_START=`/usr/bin/awk '$1 == "dwSetParam" && /'${COL_NAME}' {/ {print NR}' ${AB2DB}` LINE_END=`expr $LINE_START + 4` # etract that section into a file `/usr/bin/sed -n -e ''${LINE_START}','${LINE_END}'p' < ${AB2DB} > /tmp/lines.$$` # get the collection location LOCATION=`/usr/bin/awk '$1 == "location" {print $2}' /tmp/lines.$$` SOCAT_PATH=${LOCATION}/socat if [ ! -z "R_OPTION" ] then # map real basedir to basedir LOCATION=`echo $LOCATION | /usr/bin/sed 's:'$REAL_BASEDIR':'$BASEDIR':g'` SOCAT_PATH=`echo $SOCAT_PATH | /usr/bin/sed 's:'$REAL_BASEDIR':'$BASEDIR':g'` fi if [ -f $SOCAT_PATH ] then # get each fpi for the collection NUM_SOCAT=`/usr/bin/grep -c . ${SOCAT_PATH}` NUM_SOCAT=`expr $NUM_SOCAT + 1` j=1 while (test $j -lt $NUM_SOCAT) do FPI=`sed -n -e ''${j}'p' ${SOCAT_PATH} | awk '{printf "%s %s %s %s\n", $1, $2, $3, $4}'` BK_NAME=`sed -n -e ''${j}'p' ${SOCAT_PATH} | awk '{print $2}'` PATH_TO_BOOK=${LOCATION}/books/${BK_NAME} if [ -d $PATH_TO_BOOK ] then # echo $FPI if [ ! -z "R_OPTION" ] then # map basedir to real basedir PATH_TO_BOOK=`echo $PATH_TO_BOOK | /usr/bin/sed 's:'$BASEDIR':'$REAL_BASEDIR':g'` fi echo "PUBLIC ${FPI} \"${PATH_TO_BOOK}\"" >> ${TMP_FILE} fi j=`expr $j + 1` done fi i=`expr $i + 1` done rm -f ${TMP_LIST} if [ -f ${TMP_FILE} ] then cp ${TMP_FILE} ${AB2SOCAT} fi rm -f ${TMP_FILE} rm -f ${TMP_LIST} rm -f /tmp/lines.$$ if [ ! -z "$LC_ALL" ] then reset_LC_all else reset_LC_ctype fi } # this link exist in old SUNWab2u pkg if [ ! -f ${BASEDIR}/lib/ab2//dweb/data/config/ja_JP.eucJP ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/ja_JP.eucJP fi # remove file from pkg database that didn't get installed # De_DE if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/accent.x ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/accent.x fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/errors.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/errors.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/msgs.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/msgs.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/props.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/props.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/query.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/query.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/values.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/values.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/resource/parser/strings.dat ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/De_DE/resource/parser/strings.dat fi # Fr_FR if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/accent.x ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/accent.x fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/errors.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/errors.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/msgs.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/msgs.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/props.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/props.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/query.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/query.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/values.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/values.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/resource/parser/strings.dat ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/Fr_FR/resource/parser/strings.dat fi # It_IT if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/accent.x ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/accent.x fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/errors.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/errors.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/msgs.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/msgs.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/props.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/props.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/query.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/query.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/values.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/values.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/resource/parser/strings.dat ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/It_IT/resource/parser/strings.dat fi # de if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/de/accent.x ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/de/accent.x fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/de/errors.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/de/errors.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/de/msgs.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/de/msgs.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/de/props.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/de/props.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/de/query.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/de/query.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/de/values.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/de/values.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/de/resource/parser/strings.dat ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/de/resource/parser/strings.dat fi # es if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/es/accent.x ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/es/accent.x fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/es/errors.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/es/errors.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/es/msgs.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/es/msgs.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/es/props.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/es/props.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/es/query.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/es/query.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/es/values.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/es/values.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/es/resource/parser/strings.dat ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/es/resource/parser/strings.dat fi # fr if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/fr/accent.x ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/fr/accent.x fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/fr/errors.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/fr/errors.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/fr/msgs.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/fr/msgs.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/fr/props.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/fr/props.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/fr/query.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/fr/query.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/fr/values.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/fr/values.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/fr/resource/parser/strings.dat ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/fr/resource/parser/strings.dat fi # it if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/it/accent.x ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/it/accent.x fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/it/errors.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/it/errors.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/it/msgs.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/it/msgs.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/it/props.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/it/props.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/it/query.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/it/query.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/it/values.txt ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/it/values.txt fi if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/it/resource/parser/strings.dat ] then removef $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/it/resource/parser/strings.dat fi removef -f $PKGINST if [ ! -z "$PKG_INSTALL_ROOT" -a "${PKG_INSTALL_ROOT}" != "/" ] then # install with -R with root other than / R_OPTION="TRUE" REAL_BASEDIR=`pkgparam -R $PKG_INSTALL_ROOT SUNWab2u BASEDIR` # Note that BASEDIR is $PKG_INSTALL_ROOT/$REAL_BASEDIR in this situation AB2UsrDir=$BASEDIR export AB2UsrDir else REAL_BASEDIR=$BASEDIR fi HOSTNAME=`/usr/bin/uname -n` DWHTTPD_orig=${BASEDIR}/lib/ab2/dweb/data/config/dwhttpd.cfg DWHTTPD_tmp=/tmp/dwhttpd.cfg$$ NSAPI_orig=${BASEDIR}/lib/ab2/dweb/data/config/nsapi.cfg NSAPI_tmp=/tmp/nsapi.cfg$$ NPHDWEB_orig=${BASEDIR}/lib/ab2/bin/cgi/nph-dweb if [ ! -f $NPHDWEB_orig ] ; then NPHDWEB_orig=${BASEDIR}/lib/ab2/bin/ab2bin/nph-dweb fi NPHDWEB_tmp=/tmp/nph-dweb$$ STYLE_MAP=${BASEDIR}/lib/ab2/dweb/data/ents/map.txt STYLE_MAP_tmp=/tmp/map.txt$$ EBTRC=${BASEDIR}/lib/ab2/dweb/data/ebtrc EBTRC_tmp=/tmp/ebtrc$$ ab2mgr_tmp=/tmp/ab2mgr_tmp$$ # remove modified tmp file in case it already exists rm -f $DWHTTPD_tmp rm -f $NSAPI_tmp rm -f $ab2mgr_tmp rm -f $STYLE_MAP_tmp rm -f $NPHDWEB_tmp # install the backup copy of the configuration files # these files are created at the action script (i.config) installf -c base $PKGINST ${DWHTTPD_orig}.orig v installf -f $PKGINST || exit 2 installf -c base $PKGINST ${NSAPI_orig}.orig v installf -f $PKGINST || exit 2 # if there is a old version of the confige files to be save (done at i.config) # make sure we install into the database so pkgrm will remove them if [ -f ${DWHTTPD_orig}.SAVE ] ; then installf -c base $PKGINST ${DWHTTPD_orig}.SAVE v installf -f $PKGINST || exit 2 fi if [ -f ${NSAPI_orig}.SAVE ] ; then installf -c base $PKGINST ${NSAPI_orig}.SAVE v installf -f $PKGINST || exit 2 fi # Support relocatability # update AB2UsrDir in dwhttpd.cfg/nsapi.cfg files if SUNWab2u's basdir != /usr if (test "$REAL_BASEDIR" != "/usr") then AB2DB=$BASEDIR/lib/ab2/dweb/data/config/ab2_collections.template # dwhttpd.cfg /usr/bin/sed -e 's:set AB2UsrDir.*:set AB2UsrDir '${REAL_BASEDIR}':g' < ${DWHTTPD_orig} > ${DWHTTPD_tmp} cp $DWHTTPD_tmp $DWHTTPD_orig rm -f $DWHTTPD_tmp # nsapi.cfg /usr/bin/sed -e 's:set AB2UsrDir.*:set AB2UsrDir '${REAL_BASEDIR}':g' < ${NSAPI_orig} > ${NSAPI_tmp} cp $NSAPI_tmp $NSAPI_orig rm -f $NSAPI_tmp # update ebtrc if [ -f ${EBTRC} ] ; then /usr/bin/sed -e 's:/usr:'${REAL_BASEDIR}':g' < ${EBTRC} > ${EBTRC_tmp} cp $EBTRC_tmp $EBTRC rm -f $EBTRC_tmp # update the file in package database installf -c preserve $PKGINST $EBTRC e installf -f $PKGINST || exit 2 fi # update nph-dweb if [ -f ${NPHDWEB_orig} ] ; then /usr/bin/sed -e 's:set AB2UsrDir.*:set AB2UsrDir = '${REAL_BASEDIR}':g' < ${NPHDWEB_orig} > ${NPHDWEB_tmp} cp $NPHDWEB_tmp $NPHDWEB_orig rm -f $NPHDWEB_tmp # update the file in package database installf -c base $PKGINST $NPHDWEB_orig f installf -f $PKGINST || exit 2 fi else AB2DB=$BASEDIR/lib/ab2/dweb/data/config/ab2_collections.template fi # update AB2RootDir in dwhttpd.cfg/nsapi.cfg files if SUNWab2r's basdir != / # also update ab2mgr if SUNWab2u's basedir != /usr # Is SUNWab2r exists?? FOUND=`/usr/bin/pkginfo | /usr/bin/fgrep SUNWab2r | /usr/bin/awk '{print $2}'` if [ ! -z "$FOUND" ] ; then # get SUNWab2r base dir ROOT_DIR=`/usr/bin/pkgparam SUNWab2r BASEDIR` AB2RootDir=$PKG_INSTALL_ROOT$ROOT_DIR export AB2RootDir if (test "$ROOT_DIR" != "/") then AB2SOCAT=${PKG_INSTALL_ROOT}$ROOT_DIR/var/log/ab2/catalog/local.socat AB2VarDir=${PKG_INSTALL_ROOT}$ROOT_DIR/var export AB2VarDir # dwhttpd.cfg /usr/bin/sed -e 's:set AB2RootDir.*:set AB2RootDir '${ROOT_DIR}':g' < ${DWHTTPD_orig} > ${DWHTTPD_tmp} cp $DWHTTPD_tmp $DWHTTPD_orig rm -f $DWHTTPD_tmp # nsapi.cfg /usr/bin/sed -e 's:set AB2RootDir.*:set AB2RootDir '${ROOT_DIR}':g ' < ${NSAPI_orig} > ${NSAPI_tmp} cp $NSAPI_tmp $NSAPI_orig rm -f $NSAPI_tmp # update nph-dweb /usr/bin/sed -e 's:set AB2RootDir.*:set AB2RootDir = '${REAL_BASEDIR}':g' < ${NPHDWEB_orig} > ${NPHDWEB_tmp} cp $NPHDWEB_tmp $NPHDWEB_orig rm -f $NPHDWEB_tmp # update the file in package database installf -c base $PKGINST $NPHDWEB_orig f installf -f $PKGINST || exit 2 # update AB2VarDir # dwhttpd.cfg /usr/bin/sed -e 's:set AB2VarDir.*:set AB2VarDir '${ROOT_DIR}/var':g' < ${DWHTTPD_orig} > ${DWHTTPD_tmp} cp $DWHTTPD_tmp $DWHTTPD_orig rm -f $DWHTTPD_tmp # nsapi.cfg /usr/bin/sed -e 's:set AB2VarDir.*:set AB2VarDir '${ROOT_DIR}/var':g' < ${NSAPI_orig} > ${NSAPI_tmp} cp $NSAPI_tmp $NSAPI_orig rm -f $NSAPI_tmp # update nph-dweb /usr/bin/sed -e 's:set AB2VarDir.*:set AB2VarDir = '${REAL_BASEDIR}':g' < ${NPHDWEB_orig} > ${NPHDWEB_tmp} cp $NPHDWEB_tmp $NPHDWEB_orig rm -f $NPHDWEB_tmp # update the file in package database installf -c base $PKGINST $NPHDWEB_orig f installf -f $PKGINST || exit 2 # update /etc/init.d/ab2mgr if AB2UsrDir != /usr if (test "$REAL_BASEDIR" != "/usr") then if [ ! -z "$R_OPTION" ] then ab2mgr_orig=$PKG_INSTALL_ROOT$ROOT_DIR/etc/init.d/ab2mgr else ab2mgr_orig=$ROOT_DIR/etc/init.d/ab2mgr fi /usr/bin/sed -e 's:AB2UsrDir\=.*:AB2UsrDir='${REAL_BASEDIR}':g' <${ab2mgr_orig} > ${ab2mgr_tmp} cp $ab2mgr_tmp $ab2mgr_orig rm -f $ab2mgr_tmp installf -c preserve SUNWab2r $ab2mgr_orig e installf -f SUNWab2r || exit 2 fi else AB2SOCAT=${PKG_INSTALL_ROOT}/var/log/ab2/catalog/local.socat AB2VarDir=${PKG_INSTALL_ROOT}/var export AB2VarDir # update /etc/init.d/ab2mgr if AB2UsrDir != /usr if (test "$REAL_BASEDIR" != "/usr") then if [ ! -z "$R_OPTION" ] then ab2mgr_orig=$PKG_INSTALL_ROOT/etc/init.d/ab2mgr else ab2mgr_orig=/etc/init.d/ab2mgr fi /usr/bin/sed -e 's:AB2UsrDir\=.*:AB2UsrDir='${REAL_BASEDIR}':g' <${ab2mgr_orig} > ${ab2mgr_tmp} cp $ab2mgr_tmp $ab2mgr_orig rm -f $ab2mgr_tmp installf -c preserve SUNWab2r $ab2mgr_orig e installf -f SUNWab2r || exit 2 fi fi fi # get SUNWab2s basedir & update dwhttpd.cfg/nsapi.cfg files if basdir != /usr FOUND=`/usr/bin/pkginfo | /usr/bin/fgrep SUNWab2s | /usr/bin/awk '{print $2}'` if [ ! -z "$FOUND" ] ; then # found SUNWab2s package # get SUNWab2s base dir SHARE_DIR=`/usr/bin/pkgparam SUNWab2s BASEDIR` AB2ShareDir=${PKG_INSTALL_ROOT}$SHARE_DIR export AB2ShareDir if (test "$SHARE_DIR" != "/usr") then # update AB2ShareDir # dwhttpd.cfg if [ -f ${DWHTTPD_orig} ] ; then /usr/bin/sed -e 's:set AB2ShareDir.*:set AB2ShareDir '${SHARE_DIR}':g' < ${DWHTTPD_orig} > ${DWHTTPD_tmp} cp $DWHTTPD_tmp $DWHTTPD_orig rm -f $DWHTTPD_tmp fi # nsapi.cfg if [ -f ${NSAPI_orig} ] ; then /usr/bin/sed -e 's:set AB2ShareDir.*:set AB2ShareDir '${SHARE_DIR}':g' < ${NSAPI_orig} > ${NSAPI_tmp} cp $NSAPI_tmp $NSAPI_orig rm -f $NSAPI_tmp fi # update nph-dweb if [ -f ${NPHDWEB_orig} ] ; then /usr/bin/sed -e 's:set AB2ShareDir.*:set AB2ShareDir = '${REAL_BASEDIR}':g' < ${NPHDWEB_orig} > ${NPHDWEB_tmp} cp $NPHDWEB_tmp $NPHDWEB_orig rm -f $NPHDWEB_tmp # update the file in package database installf -c base $PKGINST $NPHDWEB_orig f installf -f $PKGINST || exit 2 fi # update ents/map.txt if [ -f ${STYLE_MAP} ] ; then /usr/bin/sed -e 's:/usr:'${SHARE_DIR}':g' < ${STYLE_MAP} > ${STYLE_MAP_tmp} cp $STYLE_MAP_tmp $STYLE_MAP rm -f $STYLE_MAP_tmp # update the file in package database installf -c preserve $PKGINST $STYLE_MAP e installf -f $PKGINST || exit 2 fi fi fi # stop the server just in case an old one still running if [ -z "$R_OPTION" ] then PID=`/usr/bin/ps -e | /usr/bin/fgrep dwhttpd | /usr/bin/awk '{print $1}'` if [ ! -z "$PID" ] ; then /usr/bin/kill ${PID} 1>/dev/null 2>&1 fi fi # Admin command CMD_START="${BASEDIR}/lib/ab2/bin/ab2admin -o start" CMD_RESTART="${BASEDIR}/lib/ab2/bin/ab2admin -o restart" CMD_STOP="${BASEDIR}/lib/ab2/bin/ab2admin -o stop" CMD_SCAN="${BASEDIR}/lib/ab2/bin/ab2admin -o scan" HELP_INFO=/tmp/collinfo$$ INSTALL_HELP="${BASEDIR}/lib/ab2/bin/ab2admin -o install -d ${HELP_INFO}" # Backup ab2_collection2.template if [ ! -f ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template.orig ] ; then cp -p ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template.orig installf -c base $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template.orig f installf -f $PKGINST || exit 2 fi add_help_collection ############################################ # Update loca.socat file create_socat # install preexisting collections echo " " echo "Scanning local collections ..." if [ -z "$R_OPTION" ] then eval $CMD_SCAN if [ "$?" -ne 0 ] then echo "WARNING: postinstall failed to install the locally installed documents" fi else CMD_SCAN="${BASEDIR}/lib/ab2/bin/ab2admin -o scan -R $PKG_INSTALL_ROOT" eval $CMD_SCAN if [ "$?" -ne 0 ] then echo "WARNING: postinstall failed to install the locally installed documents" fi fi # update configuration file in package database installf -c config $PKGINST $NSAPI_orig e installf -f $PKGINST || exit 2 installf -c config $PKGINST $DWHTTPD_orig e installf -f $PKGINST || exit 2 installf -c preserve $PKGINST ${BASEDIR}/lib/ab2/dweb/data/config/ab2_collections.template v installf -f $PKGINST || exit 2 # start the server depending on the existing of SUNWab2r package FOUND=`/usr/bin/pkginfo | /usr/bin/fgrep SUNWab2r | /usr/bin/awk '{print $2}'` if [ ! -z "$FOUND" ] ; then # don't start the server if installation is for client if [ -z "$R_OPTION" ] then # SUNWab2r packages exist, start the server eval $CMD_START if [ "$?" -ne 0 ] then echo "WARNING: postinstall failed to restart the document server" else echo "" echo "Document server started as process dwhttpd" echo "Document can be accessed with URL http://${HOSTNAME}:8888" fi fi else echo "WARNING:" echo " The document server will not be started." echo " Cannot find SUNWab2r package." echo " Document server depends on SUNWab2r package for it to get started." echo " You will have to start the document server (ab2admin -o start) after intalling SUNWab2r package." echo " You may want to install locally installed AnswerBook documents by running ab2admin -o scan after installing the SUNWab2r package." fi exit 0