#!/bin/bash
. /etc/sorcery/config
. /etc/sorcery/local/guruinfo

LINES=`wc -l DETAILS  | sed 's/ //g' | sed 's/DETAILS//'`
i=1
VERSION=0
MD5=0
rm -f DETAILS.tmp DETAILS.tmp2
cp DETAILS DETAILS.org

EQ=`cat DETAILS | head -n 1 | tail -n 1 | awk -F '=' '{ print length($1) ;}'`
let EQ++

echo "Init:"
echo "DETAILS is $LINES long, EQ is at $EQ"
echo " "

while [ $i -le $LINES ]; do
  l=`cat DETAILS | head -n $i | tail -n 1`

  v=`echo $l | grep "VERSION=" | sed 's/ //g' | sed 's/VERSION=//'`

  if [ -n "$v" ]; then
    VERSION=$v
    echo "Version:$VERSION"
    VERSION_OK=1
  fi


  m=`echo $l | grep "MD5\[0\]=" | sed 's/ //g' | sed 's/MD5\[0\]=//'`

  if [ -n "$m" ]; then
    MD5=$m
    echo "MD5[0]:$MD5"
    MD5_OK=1
  fi

  let i++
done

if [ -z "$MD5_OK" ] || [ -z "$VERSION_OK" ]; then
  echo "Error..."
  exit 1
fi

echo "What's the new version ?"
read nv

#echo "Update to $nv, correct ?"
#read yn
#
#if [ "$yn" != "y" ]; then
#  exit 1
#fi

echo "Updating VERSION..."

i=1
unset VERSION_OK

while [ $i -le $LINES ]; do
  l=`cat DETAILS | head -n $i | tail -n 1`

  VERSION_UP=`echo $l | grep "VERSION=" | sed 's/ //g' | sed 's/VERSION=//'`

  if [ -n "$VERSION_UP" ]; then
    echo "         VERSION=$nv" >> DETAILS.tmp
    VERSION_OK=1
  else
    echo "$l" >> DETAILS.tmp
  fi

  let i++
done

if [ -z "$VERSION_OK" ]; then
  echo "error"
  exit 1
fi

echo "Downloading new version..."

cp DETAILS.tmp DETAILS
source DETAILS 1>/dev/null 2>&1

summon $SPELL

srctar=`echo $SOURCE | sed 's/.tar.*/.tar/'`
oldpwd=`pwd`

echo "Source tarball analysis... ($SOURCE)"

SPOOL_SOURCE="/var/spool/sorcery/$SOURCE"
md="$(uncompress $SPOOL_SOURCE  $(guess_compressor $SPOOL_SOURCE)|md5sum|cut -d' ' -f1)"

cd $oldpwd

echo "Updating MD5..."

i=1
unset MD5_OK
while [ $i -le $LINES ]; do
  l=`cat DETAILS | head -n $i | tail -n 1`

  MD5_UP=`echo $l | grep "MD5\[0\]="`

  if [ -n "$MD5_UP" ]; then
    echo "          MD5[0]=$md" >> DETAILS.tmp2
    MD5_OK=1
  else
    echo "$l" >> DETAILS.tmp2
  fi

  let i++
done

if [ -z "$MD5_OK" ]; then
  echo "error"
  exit 1
fi


echo "Spacing file..."

rm -f DETAILS.tmp
i=1

#while [ $i -le $LINES ] && [ false ]; do
#  l=`cat DETAILS.tmp2 | head -n $i | tail -n 1`
#
#  cateof=`echo $l | sed 's/[ ]//g' | grep "cat<<EOF"`
#
#  if [ -z "$cateof" ] && [ -z "$skipsp" ]; then
#    preq=`echo $l | sed 's/=.*//'`
#    nbpreq=`echo $preq | wc -m | sed 's/[ ]//g'`
#
#    sp=`expr $EQ - $nbpreq`
#
#    j=0
#    newl=""
#    while [ $j -lt $sp ]; do
#      newl=" $newl"
#      let j++
#    done
#echo "$newl$l"
#    echo "$newl$l" >> DETAILS.tmp
#  else
#    skipsp=1
#echo "$l"
#    echo "$l" >> DETAILS.tmp
#  fi
#
#  let i++
#done

# false:
#cp DETAILS.tmp2 DETAILS.tmp

cat DETAILS.tmp2
cat DETAILS.tmp2 > DETAILS
rm -f DETAILS.tmp DETAILS.tmp2 /tmp/DETAILS
#chmod 555 DETAILS


echo "Add HISTORY ?"
read yn

if [ "$yn" != "y" ]; then
  echo "Keep changes ?"
  read yn
  if [ "$yn" != "y" ]; then
    rm DETAILS
    mv DETAILS.org DETAILS
    exit 1
  fi
  exit 1
fi

dat=`date +%Y-%m-%d`

echo "$dat  $GURU_NAME <$GURU_EMAIL>" > HISTORY.$$
echo "	* DETAILS: Version++ ($VERSION)." >> HISTORY.$$
echo " " >> HISTORY.$$

cat HISTORY >> HISTORY.$$
#chmod 444 HISTORY.$$
mv HISTORY /tmp/HISTORY.$$
mv HISTORY.$$ HISTORY
mv DETAILS.org /tmp/DETAILS.org.$$


head -n 5 HISTORY

exit 0

