linux/debian.sample.0311/prerm.linux-image

101 lines
2.0 KiB
Bash

#!/bin/bash
unalias -a
set +xv
VERBOSE=0
ARCHP=xxARCHPxx
ARCHM=xxARCHMxx
LOCALVERSION=xxLOCALVERSIONxx
LOCVER=xxLOCVERxx
KERNELRELEASE=xxKERNELRELEASExx
FIMAGE=xxFIMAGExx
FCONFIG=xxFCONFIGxx
FSYSTEMMAP=xxFSYSTEMMAPxx
FVMLINUX=xxFVMLINUXxx
x=${KERNELRELEASE#*elbrus.}
x=${LOCVER}
LABEL=k${x}
OSLBASE=base
OSLUP=$LABEL
OSLFLASH=oslflash
[[ -z $ROOT ]] && ROOT=/
ROOTDIR=$ROOT
BOOTCONF=${ROOTDIR}/boot/boot.conf
if [[ $ARCHM == e2k ]]; then
BOOTIMAGE=boot/$FIMAGE
else
BOOTIMAGE=$FIMAGE
fi
tmpf=/tmp/__prerm_linux_$$_
################################################################################
cleanup()
{
rm -f ${tmpf}*
}
DoEcho()
{
echo "=== linux prerm: $LOCVER: $*"
}
DoEchoV()
{
[[ $VERBOSE == 0 ]] && return 0
DoEcho "$*"
}
################################################################################
# check boot.conf: label=base - image=/FIMAGE
################################################################################
CheckLabel_base()
{
O_IFS="$IFS"
export IFS=
isbase=0
while read -r line; do
line1=$(echo $line | sed -e 's/[\t ]*//g')
if [[ $line1 == "label=${OSLBASE}" || $line1 == "label=${OSLBASE}#"* ]]; then
isbase=1
continue
fi
if [[ $isbase == 1 ]]; then
if [[ $line1 == "image="* ]]; then
fimage=${line1#image=/}
fimage=${fimage%%\#*}
if [[ $fimage == $FIMAGE ]]; then
return 1
else
return 0
fi
fi
fi
done <${BOOTCONF}
IFS="$O_IFS"
}
################################################################################
trap "cleanup" 1 2 3 6 15 EXIT
DoEchoV "KERNELRELEASE=$KERNELRELEASE"
DoEchoV "FIMAGE=$FIMAGE"
DoEchoV "LABEL=$LABEL"
krelease=`uname -r`
if [[ "$krelease" == "$KERNELRELEASE" ]]; then
DoEcho "WARNING: kernel release: uname -r: $krelease"
DoEcho "WARNING: cannot remove package"
exit 1
fi
if [[ -f $BOOTCONF ]]; then
CheckLabel_base
if [[ $? == 1 ]]; then
DoEcho "WARNING: label=${OSLBASE}: image=/$FIMAGE"
DoEcho "WARNING: cannot remove package"
exit 1
fi
fi
exit 0