diff options
Diffstat (limited to 'packaging/rpmconfigcheck')
-rw-r--r-- | packaging/rpmconfigcheck | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/packaging/rpmconfigcheck b/packaging/rpmconfigcheck new file mode 100644 index 000000000..97bba74ee --- /dev/null +++ b/packaging/rpmconfigcheck @@ -0,0 +1,80 @@ +#! /bin/bash +# Copyright (c) 2002 SuSE GmbH Nuernberg, Germany. +# +# Author: Michael Schroeder <feedback@suse.de> +# +# /etc/init.d/rpmconfigcheck +# /usr/sbin/rcrpmconfigcheck +# +# Script to scan for unresolved .rpmnew, .rpmorig, and .rpmsave files +# +### BEGIN INIT INFO +# Provides: rpmconfigcheck +# Required-Start: $remote_fs +# Required-Stop: $null +# Default-Start: 2 3 5 +# Default-Stop: +# Description: rpm config file scan +### END INIT INFO + +. /etc/rc.status + +# First reset status of this service +rc_reset + +configcheckfile=/var/adm/rpmconfigcheck +packages=/var/lib/rpm/Packages + +test -z "$1" && set start + +case "$1" in + start|restart|try-restart|reload|force-reload) + if test -s $packages -a \( ! -e $configcheckfile -o -s $configcheckfile -o ! $packages -ot $configcheckfile \) ; then + echo -n "Searching for unresolved configuration files" + if test ! -e $configcheckfile -o ! $packages -ot $configcheckfile ; then + test -e $configcheckfile && mv -f $configcheckfile $configcheckfile.old + rpm -qalc | sort | perl -lne '-e "$_.rpmnew" and print "$_.rpmnew"; -e "$_.rpmorig" and print "$_.rpmorig"; -e "$_.rpmsave" and print "$_.rpmsave"' > $configcheckfile + else + mv -f $configcheckfile $configcheckfile.old + while read l; do + test -e $l && echo $l + done < $configcheckfile.old > $configcheckfile + true + fi + rc_status -v + if test -s $configcheckfile; then + echo "Please check the following files (see /var/adm/rpmconfigcheck):" + sed -e 's/^/ /' < $configcheckfile + touch $configcheckfile.old + cat $configcheckfile $configcheckfile.old | sort | uniq -d > $configcheckfile.dup + cat $configcheckfile $configcheckfile.dup | sort | uniq -u > $configcheckfile.new + if test -s $configcheckfile.new ; then + ( + echo "----------------------------------------------------------------------" + echo "----------------------------------------------------------------------" + echo "rpmconfigcheck" + date + echo "----------------------------------------" + echo "This is a warning message." + echo "rpmconfigcheck has found the following new unresolved config files" + echo "(all files are listed in /var/adm/rpmconfigcheck):" + cat $configcheckfile.new + echo "----------------------------------------" + ) >> /var/log/update-messages + fi + fi + rm -f $configcheckfile.old $configcheckfile.dup $configcheckfile.new + fi + ;; + stop) + ;; + status) + rc_failed 4 + rc_status -v + ;; + *) + echo "Usage: $0 {start}" + exit 1 + ;; +esac +rc_exit |