#! /bin/ksh ######## # Product: CDE # Fileset: CDE-SHLIBS # configure # $XConsortium: configShlibs /main/5 1996/06/13 15:47:42 drk $ ######## # # (c) Copyright 1996 Digital Equipment Corporation. # (c) Copyright 1995,1996 Hewlett-Packard Company. # (c) Copyright 1996 International Business Machines Corp. # (c) Copyright 1996 Sun Microsystems, Inc. # (c) Copyright 1996 Novell, Inc. # (c) Copyright 1996 FUJITSU LIMITED. # (c) Copyright 1996 Hitachi. # ######## PROG_NAME=$0 CreateOneLink() { if [ -f $1.$2 ]; then rm -f $1 ln -s $1.$2 $1 else echo "$PROG_NAME: $1.$2 does not exist." echo " A symbolic link for this shared library will NOT be created." fi } CreateSymLinks() { if [ -d /usr/dt/lib ]; then cd /usr/dt/lib CreateOneLink libDtHelp.sl 2.1 CreateOneLink libDtPrint.sl 2.1 CreateOneLink libDtMrm.sl 2.1 CreateOneLink libDtSvc.sl 2.1 CreateOneLink libDtWidget.sl 2.1 CreateOneLink libDtTerm.sl 2.1 CreateOneLink libtt.sl 2.1 CreateOneLink libcsa.sl 2.1 CreateOneLink libDtSearch.sl 2.1 CreateOneLink libDtMmdb.sl 2.1 else echo "$PROG_NAME: /usr/dt/lib does not exist. Symbolic" echo " links for the shared libraries will NOT be created." fi } VerifyInstalledFiles() { echo "Status mode owner group filename" echo "-----------------------------------------" # exists correct correct correct /usr/dt/foo1 # MISSING WRONG WRONG WRONG /usr/dt/foo2 # exists the link is correct /usr/dt/link while read SRC do if [ "$SRC" != "" ] then set -A tokens $SRC if [ "${tokens[3]}" = "file" ] then if [ -f ${tokens[0]} ] then echo "exists \c" else echo "MISSING or REMOVED \c" echo "${tokens[0]}" continue fi elif [ "${tokens[3]}" = "sym_link" ] then if [ -L ${tokens[0]} ] then echo "exists \c" else echo "MISSING or REMOVED \c" echo "${tokens[0]}" continue fi fi if [ "${tokens[3]}" = "file" ] then touch /tmp/config-test chmod ${tokens[1]} /tmp/config-test tmpperms=`ls -l /tmp/config-test | awk '{print $1}'` realperms=`ls -l ${tokens[0]} | awk '{print $1}'` if [ "$tmpperms" = "$realperms" ] then echo "correct \c" else echo " WRONG \c" fi owner=`ls -l ${tokens[0]} | awk '{print $3}'` if [ "$owner" = "${tokens[4]}" ] then echo "correct \c" else echo " WRONG \c" fi group=`ls -l ${tokens[0]} | awk '{print $4}'` if [ "$group" = "${tokens[5]}" ] then echo "correct \c" else echo " WRONG \c" fi elif [ "${tokens[3]}" = "sym_link" ] then linkto=`ls -l ${tokens[0]} | awk '{print $11}'` if [ "${tokens[2]}" = "$linkto" ] then echo " the link is correct \c" else echo " the link is WRONG \c" fi fi echo "${tokens[0]}" fi done <<-EOF /usr 0555 directory bin bin ------ 378 cde_dt /usr/dt 0555 directory bin bin ------ 378 cde_dt /usr/dt/lib 0555 directory bin bin ------ 378 cde_dt /usr/dt/lib/libDtHelp.sl 0555 lib/DtHelp/libDtHelp.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtPrint.sl 0555 lib/DtPrint/libDtPrint.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtMrm.sl 0555 lib/DtMrm/libDtMrm.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtSvc.sl 0555 lib/DtSvc/libDtSvc.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtWidget.sl 0555 lib/DtWidget/libDtWidget.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtTerm.sl 0555 lib/DtTerm/libDtTerm.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libtt.sl 0555 lib/tt/lib/libtt.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libcsa.sl 0555 lib/csa/libcsa.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtSearch.sl 0555 lib/DtSearch/libDtSearch.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtMmdb.sl 0555 lib/DtMmdb/libDtMmdb.sl file bin bin di---- 378 cde_dt EOF } ShowSize() { typeset -i total; let total=0 echo "Size\t\tfilename" echo "-----------------------------------------" while read SRC do if [ "$SRC" != "" ] then set -A tokens $SRC if [ "${tokens[3]}" = "file" ] then if [ -f ${tokens[0]} ] then filesize=`ls -l ${tokens[0]} | awk '{print $5}'` echo "$filesize\t\t\c" echo "${tokens[0]}" let total=total+filesize fi fi fi done <<-EOF /usr 0555 directory bin bin ------ 378 cde_dt /usr/dt 0555 directory bin bin ------ 378 cde_dt /usr/dt/lib 0555 directory bin bin ------ 378 cde_dt /usr/dt/lib/libDtHelp.sl 0555 lib/DtHelp/libDtHelp.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtPrint.sl 0555 lib/DtPrint/libDtPrint.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtMrm.sl 0555 lib/DtMrm/libDtMrm.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtSvc.sl 0555 lib/DtSvc/libDtSvc.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtWidget.sl 0555 lib/DtWidget/libDtWidget.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtTerm.sl 0555 lib/DtTerm/libDtTerm.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libtt.sl 0555 lib/tt/lib/libtt.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libcsa.sl 0555 lib/csa/libcsa.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtSearch.sl 0555 lib/DtSearch/libDtSearch.sl file bin bin di---- 378 cde_dt /usr/dt/lib/libDtMmdb.sl 0555 lib/DtMmdb/libDtMmdb.sl file bin bin di---- 378 cde_dt EOF echo "Total fileset size is $total" } HandleOption() { while [ $# -ne 0 ]; do case $1 in -e) OPERATION="configure" shift; ;; -d) OPERATION="deconfigure" shift; ;; -v) OPERATION="verify" shift; ;; -s) OPERATION="size" shift; ;; esac done } ################################################################# # # Main Body # ################################################################# PRODUCT=CDE FILESET=CDE-SHLIBS retval=0 HandleOption $* if [ "$OPERATION" = "configure" ] then echo "Configuring for CDE-SHLIBS" CreateSymLinks elif [ "$OPERATION" = "deconfigure" ] then echo "de-Configuring CDE-SHLIBS NOT supported!" elif [ "$OPERATION" = "verify" ] then VerifyInstalledFiles elif [ "$OPERATION" = "size" ] then ShowSize fi return $retval