59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/usr/bin/sh
|
|
|
|
create_cksum_file() {
|
|
srcfile=$1
|
|
destfile=$2
|
|
cksumfile=$3
|
|
|
|
echo "# DO NOT EDIT OR REMOVE THIS FILE - It is used to determine whether to" > $cksumfile
|
|
echo "# overwrite $destfile on package update or to remove" >> $cksumfile
|
|
echo "# it on package deletion." >> $cksumfile
|
|
/usr/bin/cat $srcfile | /usr/bin/cksum >> $cksumfile
|
|
/usr/bin/chmod 400 $cksumfile
|
|
}
|
|
|
|
compare_cksum() {
|
|
destfile=$1
|
|
cksumfile=$2
|
|
|
|
installed_cksum=`/usr/bin/tail -1 $cksumfile | /usr/bin/awk '{print $1}'`
|
|
current_cksum=`/usr/bin/cksum $destfile | /usr/bin/awk '{print $1}'`
|
|
test $installed_cksum = $current_cksum
|
|
}
|
|
|
|
while read src dest ; do
|
|
destpath=`echo $dest | /usr/bin/sed -e 's/\/[^/]*$//'`
|
|
destbase=`/usr/bin/basename $dest`
|
|
cksumfile="${destpath}/.${destbase}.cksum"
|
|
if [ -f $dest ] ; then
|
|
if [ -f $cksumfile ] ; then
|
|
compare_cksum $dest $cksumfile
|
|
if [ $? -eq 0 ] ; then
|
|
/usr/bin/cp $src $dest
|
|
/usr/bin/chmod 600 $dest
|
|
/usr/bin/chown nagios:nagios $dest
|
|
else
|
|
echo "Existing $dest has been found --"
|
|
echo " installing $destbase as $dest.pkgnew"
|
|
/usr/bin/cp $src $dest.pkgnew
|
|
/usr/bin/chmod 600 $dest.pkgnew
|
|
/usr/bin/chown nagios:nagios $dest.pkgnew
|
|
fi
|
|
else
|
|
echo "Existing $dest has been found --"
|
|
echo " installing $destbase as $dest.pkgnew"
|
|
/usr/bin/cp $src $dest.pkgnew
|
|
/usr/bin/chmod 600 $dest.pkgnew
|
|
/usr/bin/chown nagios:nagios $dest.pkgnew
|
|
fi
|
|
else
|
|
create_cksum_file $src $dest $cksumfile
|
|
/usr/bin/cp $src $dest
|
|
/usr/bin/chmod 600 $dest
|
|
/usr/bin/chown nagios:nagios $dest
|
|
fi
|
|
done
|
|
if [ "$1" = "ENDOFCLASS" ] ; then
|
|
exit 0
|
|
fi
|