#!/bin/sh
# Update Various System Files, Ports, etc.
# Copyright (c) 2006-2010, TundraWare Inc, Des Plaines, IL USA
# All Rights Reserved
# $Id: sysupd,v 1.125 2010/08/30 13:09:21 toor Exp $
#####
# Where To Put The Various Log Files Generated Here
#####
LOGDIR=/var/log
#####
# List Of Sets To Process By Default
#####
DEFAULTSETS='doc mirror ports stable texlive'
# ---------------- Support Functions ---------------- #
#####
# Enter Timestamp Into Current Log
# Args:
# $1 Name of logfile
#####
timestamp()
{
echo "" >> $1
echo "#####" >> $1
echo -n "# " >> $1
date >>$1
echo "#####" >> $1
echo "" >> $1
}
# End Of 'timestamp()'
#####
# Execute The Desired Update
# Args:
# $1 Update Name
# $2 Log Directory
# $3 Command String To Execute
#####
runupd()
{
log=$2/$1.log
timestamp $log
touch $2/.$1-begin && eval $3 >>$log 2>&1 && touch $2/.$1-end &
}
# End of 'runupd()'
# -------------------- Program Entry Point ---------------#
#####
# Command line args override default set
#####
if [ "$*"_ = _ ]
then
SETS=$DEFAULTSETS
else
SETS=$*
fi
#####
# Process The Requested Updates
#####
for SET in $SETS
do
case $SET
in
###
# CVSUP Updates
###
doc | ports | stable)
runupd $SET $LOGDIR "/usr/bin/csup -h cvsup5.freebsd.org /root/cvsup/$SET-supfile"
;;
###
# Update Mirrored FreeBSD Files
###
mirror)
runupd $SET $LOGDIR "/root/bin/mirror-freebsd"
;;
###
# Update The Nessus Plugins
###
nessus)
runupd $SET $LOGDIR "/usr/local/sbin/nessus-update-plugins"
;;
###
# Update TeX Live
###
texlive)
runupd $SET $LOGDIR "/usr/local/texlive/2009/bin/i386-freebsd/tlmgr update --all"
;;
#####
# Catch Errors
#####
*)
echo "Invalid sysupd Option Specified!"
;;
esac
done