cdesktopenv/cde/programs/dtinfo/dtinfogen/install/DeInstallBase

81 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
##############################################################
# DeInstallBase #
# #
# Performs de-installation for the bookcase from an info #
# library. #
# #
##############################################################
#### Parse the argument ####
if [ $# -lt 2 ]; then
echo "Usage : $0 [ bookcase ] [ info-library ] " >&2
exit 1
fi
BookCase=$1
InfoLib=$2
NAMES_MMDB=$InfoLib/bookcase.map
### Validate if both bookcase and info-library is valid ###
if [ ! -f $NAMES_MMDB ]; then
echo "(ERROR) $InfoLib is not a valid info-library" >&2
exit 1
fi
if [ ! -w $NAMES_MMDB ]; then
echo "(ERROR) No write permission to de-install $BookCase "
exit 1
fi
##### Check to see if bookcase is already existing in the infolibrary
TSTSTRING=
TSTSTRING=`awk '{
if ( NR > 1 && $1 == bookcasename ) { print bookcasename }
}' bookcasename=$BookCase $NAMES_MMDB`
if [ -z "$TSTSTRING" ]; then
echo "(ERROR) $BookCase does not already exist in $InfoLib" >&2
exit 2
fi
### remove the entry in the names.mmdb file ###
TMP_NAMES_MMDB=$NAMES_MMDB.tmp
awk '{
if ( NR == 1 || $1 != bookcasename ) { print $0 }
}' bookcasename=$BookCase $NAMES_MMDB > $TMP_NAMES_MMDB
mv $TMP_NAMES_MMDB $NAMES_MMDB
### remove the physical storage of bookcase from info-lib ###
if [ ! -d $InfoLib/$BookCase ]; then
echo "(ERROR) $BookCase is not found under $InfoLib"
exit 1
fi
rm -fr $InfoLib/$BookCase
if [ $? -ne 0 ]; then
echo "(ERROR) Failed to remove $InfoLib/$BookCase" >&2
exit 1
fi
exit 0