Newer
Older
sysupd / sysupd
#!/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