summaryrefslogtreecommitdiffstats
path: root/bin/control_rancid.in
diff options
context:
space:
mode:
authorTar Committer <tar@ocjtech.us>2002-08-09 21:59:06 +0000
committerTar Committer <tar@ocjtech.us>2002-08-09 21:59:06 +0000
commitff168ecfe045c690c24d5bbc5a3062bf9d64120c (patch)
treea480f841453c9e22b6fd9ad4a54d1c9d5dbfabf6 /bin/control_rancid.in
parentafcac75e572bcdd3cf269b921b7e8324aa5ffd4c (diff)
downloadrancid-ff168ecfe045c690c24d5bbc5a3062bf9d64120c.tar.gz
rancid-ff168ecfe045c690c24d5bbc5a3062bf9d64120c.tar.xz
rancid-ff168ecfe045c690c24d5bbc5a3062bf9d64120c.zip
Imported from rancid-2.2.2.tar.gz.rancid-2.2.2
Diffstat (limited to 'bin/control_rancid.in')
-rwxr-xr-xbin/control_rancid.in75
1 files changed, 51 insertions, 24 deletions
diff --git a/bin/control_rancid.in b/bin/control_rancid.in
index dc453a0..42f14ae 100755
--- a/bin/control_rancid.in
+++ b/bin/control_rancid.in
@@ -131,12 +131,12 @@ fi
# generate the list of all, up, & down routers
cd $DIR
trap 'rm -fr routers.db routers.all.new routers.down.new routers.up.new \
- $TMP;' 1 2 15
+ routers.mail routers.added routers.deleted $TMP;' 1 2 15
grep -v '^#' router.db > routers.db
cut -d: -f1,2 routers.db | sort -u > routers.all.new
if [ ! -f routers.all ] ; then touch routers.all; fi
diff routers.all routers.all.new > /dev/null 2>&1; RALL=$?
-@PERLV@ -F: -ane '{($F[0] =~ tr@A-Z@a-z@,print join(":", @F)."\n")
+@PERLV@ -F: -ane '{($F[0] =~ tr@A-Z@a-z@,print $_)
if ($F[2] !~ /^up$/i);}' routers.db | sort -u > routers.down.new
if [ ! -f routers.down ] ; then touch routers.down; fi
diff routers.down routers.down.new > /dev/null 2>&1; RDOWN=$?
@@ -149,32 +149,59 @@ if [ $RALL -ne 0 -o $RDOWN -ne 0 -o $RUP -ne 0 ]
then
(
if [ $RUP -ne 0 ] ; then
- if [ $RUP -eq 1 ] ; then
- echo Routers changed to up:
- comm -13 routers.up routers.up.new | sed -e 's/^/ /'
- echo
- elif [ -s routers.up.new ] ; then
- echo Routers changed to up:
- sed -e 's/^/ /' routers.up.new
- echo
+ if [ ! -s routers.up ] ; then
+ echo Routers changed to up:
+ sed -e 's/^/ /' routers.up.new
+ echo
+ else
+ WCUP=`comm -13 routers.up routers.up.new | wc -l | \
+ sed -e 's/^ *\([^ ]*\)/\1/'`
+ if [ $WCUP -gt 0 ] ; then
+ echo Routers changed to up:
+ comm -13 routers.up routers.up.new | sed -e 's/^/ /'
+ echo
+ fi
fi
fi
if [ $RDOWN -ne 0 ] ; then
- if [ $RDOWN -eq 1 ] ; then
- echo Routers changed to down:
- comm -13 routers.down routers.down.new | sed -e 's/^/ /'
- echo
- elif [ -s routers.down.new ] ; then
- echo Routers changed to down:
- sed -e 's/^/ /' routers.down.new
- echo
+ if [ ! -s routers.down ] ; then
+ echo Routers changed to down:
+ sed -e 's/^/ /' routers.down.new
+ echo
+ else
+ WCDOWN=`comm -13 routers.down routers.down.new | wc -l | \
+ sed -e 's/^ *\([^ ]*\)/\1/'`
+ if [ $WCDOWN -eq 1 ] ; then
+ echo Routers changed to down:
+ comm -13 routers.down routers.down.new | \
+ sed -e 's/^/ /'
+ echo
+ fi
fi
fi
- WC=`wc -l routers.all | sed -e 's/^ *\([^ ]*\) .*$/\1/'`
- WCNEW=`wc -l routers.all.new | sed -e 's/^ *\([^ ]*\) .*$/\1/'`
- if [ $RALL -eq 1 -a $WC -gt $WCNEW ] ; then
- echo Deleted routers:
- comm -23 routers.all routers.all.new | sed -e 's/^/ /'
+ if [ $RALL -eq 1 ] ; then
+ comm -13 routers.all routers.all.new | sed -e 's/^/ /' \
+ > routers.added
+ comm -23 routers.all routers.all.new | sed -e 's/^/ /' \
+ > routers.deleted
+
+ WCADDED=`wc -l routers.added | sed -e 's/^ *\([^ ]*\) .*$/\1/'`
+ WCDELETED=`wc -l routers.deleted | sed -e 's/^ *\([^ ]*\) .*$/\1/'`
+
+ if [ $WCADDED -gt 0 ]
+ then
+ echo Added routers:
+ cat routers.added
+ echo
+ fi
+ if [ $WCDELETED -gt 0 ]
+ then
+ echo Deleted routers:
+ cat routers.deleted
+ echo
+ fi
+
+ rm -f routers.added routers.deleted
fi
) > routers.mail
@@ -224,8 +251,8 @@ for router in `cut -d: -f1 ../routers.up` ; do
cvs add -ko $router
echo "CVS added missing router $router"
fi
- echo
done
+echo
# cvs delete configs for routers not listed in routers.up.
for router in `find . \( -name \*.new -prune -o -name CVS -prune \) -o -type f -print | sed -e 's/^.\///'` ; do
grep -i "^$router:" ../router.db > /dev/null 2>&1