#!/bin/csh
#
# Script to build a snapshot release on panic

set logfile="/var/tmp/release.out"

# print out the start banner
set startdate=`date "+%T on %D"`
echo "----------------------------------------" | tee $logfile
echo "release started at $startdate" | tee -a $logfile
echo "----------------------------------------" | tee -a $logfile

# set CVSROOT
setenv CVSROOT /usr/cvs

# set the release base version
if ( ! $?BASE ) then
   if ( ! $?RELEASETAG ) then
      setenv BASE 5.0
   else 
      if ( $RELEASETAG == RELENG_4 ) then
         setenv BASE 4.0
      else if ( $RELEASETAG == RELENG_3 ) then
         setenv BASE 3.4
      else if ( $RELEASETAG =~ RELENG_*_*_0_RELEASE ) then
         setenv BASE `echo $RELEASETAG | sed -e 's/RELENG_\(.*\)_0_RELEASE/\1/' | sed -e 's/_/./g'`
      else if ( $RELEASETAG =~ RELENG_*_RELEASE ) then
         setenv BASE `echo $RELEASETAG | sed -e 's/RELENG_\(.*\)_RELEASE/\1/' | sed -e 's/_/./g'`
      else
         setenv BASE "$RELEASETAG"
      endif
   endif
endif
     
# set the release name
if ( ! $?RELEASE_BASE ) then
   setenv RELEASE_BASE "${BASE}-BALDWIN_CX"
endif

if ( ! $?RELEASE_SUFFIX ) then
   setenv RELEASE_SUFFIX ""
endif

# don't use dates for releases
if ( ! $?RELEASETAG ) then
   setenv RELEASE "${RELEASE_BASE}${RELEASE_SUFFIX}-"`date "+%Y%m%d"`
else
   if ( $RELEASETAG =~ RELENG_*_RELEASE ) then
      setenv RELEASE "${RELEASE_BASE}${RELEASE_SUFFIX}"
   else       
      setenv RELEASE "${RELEASE_BASE}${RELEASE_SUFFIX}-"`date "+%Y%m%d"`
   endif
endif

# start the actual release
cd /usr/src/release
if ( $?RELEASETAG ) then
   make release BUILDNAME=${RELEASE} CHROOTDIR=/usr/release DOCDISTFILES=/usr/docdistfiles USA_RESIDENT=YES RELEASETAG=${RELEASETAG} $* | tee -a $logfile
else
   make release BUILDNAME=${RELEASE} CHROOTDIR=/usr/release DOCDISTFILES=/usr/docdistfiles USA_RESIDENT=YES $* | tee -a $logfile
endif
set save=$status

# print out the ending banner
echo "----------------------------------------" | tee -a $logfile
echo "release started at $startdate" | tee -a $logfile
if ( $save ) then
	echo "release died at "`date "+%T on %D"` | tee -a $logfile
	echo "----------------------------------------" | tee -a $logfile
	exit 1
else
	echo "release finished at "`date "+%T on %D"` | tee -a $logfile
endif
echo "----------------------------------------" | tee -a $logfile

# move the release over to ftp if requested
if ( $?RELEASE_FTP ) then
   echo "----------------------------------------" | tee -a $logfile
   echo "setting up the ftp release area" | tee -a $logfile
   echo "----------------------------------------" | tee -a $logfile
   mv /usr/release/R/ftp /usr/ftp/pub/FreeBSD/${RELEASE}
   rm /usr/ftp/pub/FreeBSD/${RELEASE}/${RELEASE}
   chmod a+rx /usr/ftp/pub/FreeBSD/${RELEASE}

   # generate the ISO images as well if requested
   if ( $?RELEASE_CD ) then
      echo "----------------------------------------" | tee -a $logfile
      echo "generating release CDROM ISO images" | tee -a $logfile
      echo "----------------------------------------" | tee -a $logfile
      mkdir -p /usr/ftp/pub/FreeBSD/${RELEASE}/ISO-images
      mkisofs -A "${RELEASE}" -b floppies/boot.flp -J -o /usr/ftp/pub/FreeBSD/${RELEASE}/ISO-images/disc1.iso -p "John Baldwin / john@Baldwin.cx" -r -T -V "FreeBSD${RELEASE_SUFFIX} Disc 1" /usr/release/R/cdrom/disc1
      mkisofs -A "${RELEASE}" -J -o /usr/ftp/pub/FreeBSD/${RELEASE}/ISO-images/disc2.iso -p "John Baldwin / john@Baldwin.cx" -r -T -V "FreeBSD${RELEASE_SUFFIX} Disc 2" /usr/release/R/cdrom/disc2
   endif
endif
