#!/bin/sh
#    setver - set version number for ipmiutil package
# 
# Usage:  setver [version] [doinc?=y/n/r]
#    if [version] is specified, assume increment, unless
#    [doinc?] is 'n'.
#    if [doinc?] is 'r', reverse increment (decrement).
#
ver=2.1.2
tmped=/tmp/edver.tmp
tmpspec=/tmp/edspec.tmp
skipinc=0
reverseinc=0

if [ $# -gt 0 ]
then
  ver=$1
  if [ "$2" = "n" ]
  then
     # no, skip incrementing the versions
     skipinc=1
  else
     if [ "$2" = "r" ]
     then
	# r = reverse increment
        reverseinc=1
     else
        # yes, increment the versions
        skipinc=0
     fi
  fi
fi

distro=`echo $MACHTYPE |cut -d'-' -f2`
if [ "$distro" = "suse" ]
then
   pkgdir=/usr/src/packages
else
   if [ "$distro" = "hardhat" ]
   then
      pkgdir=/usr/src/montavista
   else
      # usu redhat if here
      pkgdir=/usr/src/$distro
   fi
fi

cat - <<%%% >$tmped
1
/^AM_INIT_AUTOMAKE(
c
AM_INIT_AUTOMAKE(ipmiutil,$ver)
.
w
q
%%%
ed configure.in <$tmped

cat - <<%%% >$tmped
1
/^PKGDIR=
c
PKGDIR=${pkgdir}
.
w
q
%%%
ed Makefile.am <$tmped

cat - <<%%% >$tmped
1
/^VERSION = 
c
VERSION = $ver
.
w
q
%%%
ed configure <$tmped

cat - <<%%% >$tmpspec
1
/^Version:
c
Version: $ver
.
w
q
%%%
ed doc/ipmiutil.spec <$tmpspec

# mk_* - scripts used for my local mods
cat - <<%%% >$tmped
1
/^iver
c
iver=${ver}
.
w
q
%%%
if [ -f ../buildipmiutil.sh ]
then
  ed ../buildipmiutil.sh   <$tmped
fi

if [ -f ../win32/src/mkzip.bat ]
then
  cat - <<%%% >$tmped
1
/^set pkgver
c
set pkgver=${ver}
.
w
q
%%%
  ed ../win32/src/mkzip.bat   <$tmped
fi

if [ -f ../../ipmimisc/buildmisc.sh ]
then
  cat - <<%%% >$tmped
1
/^utilver
c
utilver=${ver}
.
w
q
%%%
  ed ../../ipmimisc/buildmisc.sh   <$tmped
fi

# cprpm - used for my local mods
cat - <<%%% >$tmped
1
/^ver=
c
ver=${ver}
.
w
q
%%%
ed cprpm <$tmped

if [ $skipinc -ne 1 ]
then
  # bump each of the utility progver values by one.
  relnote=/tmp/ipmiutil.rel
  utilc="ipmiutil.c alarms.c bmchealth.c fruconfig.c getevent.c hwreset.c icmd.c 
     pefconfig.c sensor.c showsel.c tmconfig.c wdt.c isolconsole.c 
     idiscover.c ipmi_port.c events.c"
  cd util
  echo "  ipmiutil-$ver contains:" >$relnote
  for f in $utilc
  do
      fver=`grep "progver   = " $f |cut -f2 -d'=' |cut -f2 -d'"'`
      fver1=`echo $fver |cut -f1 -d'.'`
      fver2=`echo $fver |cut -f2 -d'.'`
      if [ $reverseinc -eq 1 ]
      then      
	fvernew=${fver1}.`expr $fver2 - 1`
      else
	fvernew=${fver1}.`expr $fver2 + 1`
      fi
      tmpf=/tmp/$f.new
      alias=`grep "int argc" $f |head -n1 |cut -f1 -d'(' |awk '{print $2}' |sed -e 's/i_/ipmiutil /'`
      if [ "$f" = "ipmi_port.c" ]
      then
          do_incr=0
	  alias=ipmi_port
      elif [ "$f" = "idiscover.c" ]
      then
          do_incr=0
      else 
          do_incr=1
      fi
      if [ $do_incr -eq 0 ]
      then
        # don't increment the version automatically 
        fvernew=$fver
        echo "$f   	progver: $fvernew"
        echo "    $f	($alias)  	 ver $fvernew" >>$relnote
      else
        echo "$f   	progver: $fvernew"
        echo "    $f	($alias)  	 ver $fvernew" >>$relnote
        sed -e "s/progver   = .${fver}/progver   = \"${fvernew}/" $f >$tmpf
        cp -f $tmpf $f
      fi
  done
  cd ..
  cat $relnote >>ChangeLog
fi

echo ""
echo "Version changed to $ver, now run beforeconf.sh, then ./configure"

