#!/bin/sh
# $Log: create_rpm,v $
# Revision 1.4  2021-08-28 21:39:21+05:30  Cprogrammer
# sign devel package
#
# Revision 1.3  2021-04-03 22:13:15+05:30  Cprogrammer
# fixed indentation
#
# Revision 1.2  2021-03-26 11:34:58+05:30  Cprogrammer
# copy catChangeLog as a file instead of link
#
# Revision 1.1  2020-09-13 01:33:33+05:30  Cprogrammer
# Initial revision
#
#
# $Id: create_rpm,v 1.4 2021-08-28 21:39:21+05:30 Cprogrammer Exp mbhangui $
#
curdir=`pwd`
version=$(cat conf-version)
name=libsrs2

if [ -f /etc/debian_version ] ; then
  echo "you can't do rpmbuild on an insane system" 1>&2
  exit 1
fi

verbose=0
while test $# -gt 0; do
    case "$1" in
    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
    ;;
    *) optarg=
    ;;
    esac

    case "$1" in
    --verbose)
    verbose=1
    ;;
    --clean)
    clean="--clean"
    ;;
    --release=*)
    release=$optarg
    ;;
    *)
    echo "invalid option [$1]"
    read key
    usage 1
    ;;
    esac

    shift
done

if test -f $HOME/.rpmmacros
then
  topdir=`grep ^%_topdir $HOME/.rpmmacros | awk '{print $2}'`
  if test -n "$topdir"
  then
    rpmbuild=$topdir
  else
    rpmbuild=$HOME/rpmbuild
  fi
else
  rpmbuild=$HOME/rpmbuild
fi
copy_src=0
echo -n "Copy Source Files - "
read key
if [ " $key" = " y" -o " $key" = " Y" ] ; then
  copy_src=1
fi

make -s $name.spec
if [ $? -ne 0 ] ; then
  echo "make failed" 1>&2
  exit 1
fi

if [ -d ../stage ] ; then
  /bin/rm -rf ../stage
fi
mkdir ../stage
if [ $copy_src -eq 1 ] ; then
  cd ..
  /bin/rm -rf stage/$name-"$version"
  cp -rp $name-x stage/$name-"$version"
  /bin/rm -f stage/$name-"$version"/catChangeLog
  /bin/cp $name-x/catChangeLog stage/$name-"$version"
  cd stage/$name-"$version"
  make -s clean
  make -s distclean

  /bin/rm -rf autom4te.cache .deps
  cd ..
  echo "Archiving $name-"$version".tar.gz in `pwd`"
  tar \
    --exclude="$name-$version/.git" \
    --exclude="$name-$version/debian"  \
    --exclude="$name-$version/RCS" \
    -cf - $name-"$version" \
      | gzip -c > $rpmbuild/SOURCES/$name-"$version".tar.gz
  dist=`uname -r |cut -d . -f4`
  if [ -z "$release" ] ; then
    if [ -d /usr/include/srs2 ] ; then
      qdist=$(rpm -qf /usr/include/srs2|cut -d- -f4|cut -d. -f3)
      if [ " $dist" = " $qdist" ] ; then
        qversion=$(rpm -qf /usr/include/srs2|cut -d- -f3)
        if [ "$qversion" = "$version" ] ; then
          release=$(rpm -qf /usr/include/srs2 | cut -d- -f4 | cut -d. -f2)
          release=$(expr $release + 1)
        else
          release=1
        fi
      else
        release=1
      fi
    else
      release=1
    fi
  fi
  cd ..
  /bin/cp -p stage/$name-"$version"/$name-rpmlintrc $rpmbuild/SOURCES
else
  cd ..
fi
echo -n "Build RPM for $name-"$version"-1."$release" (Y/N) - "
read key
if [ " $key" = " Y" -o " $key" = " y" ] ; then
  cp stage/$name-"$version"/$name.spec /tmp
  sed -i -e "s|^Release: .*|Release: 1.$release%{?dist}|g" /tmp/$name.spec
  cd $curdir
  if [ $? -eq 0 ] ; then
    tmprel=`cat conf-release 2>/dev/null`
    if [ ! " $tmprel" = " 1.$release" ] ; then
      echo 1.$release > conf-release
      make -s $name.spec
      cp $name.spec /tmp
      cd debian
      make -s
      cd ..
    fi
  fi
  if [ $verbose -eq 0 ] ; then
    echo "rpmbuild -ba $clean --quiet /tmp/$name.spec"
    rpmbuild -ba $clean --quiet /tmp/$name.spec
  else
    echo "rpmbuild -ba $clean /tmp/$name.spec"
    rpmbuild -ba $clean /tmp/$name.spec
  fi
  if [ $? -eq 0 ] ; then
    /bin/rm /tmp/$name.spec
    build_arch=`rpmbuild --showrc|grep "^build arch" | awk '{print $4}'`
    rpm --addsign $rpmbuild/RPMS/$build_arch/$name-"$version"-"1.$release".$dist.$build_arch.rpm >/dev/null
    rpm --addsign $rpmbuild/RPMS/$build_arch/$name-devel-"$version"-"1.$release".$dist.$build_arch.rpm >/dev/null
    echo $rpmbuild/RPMS/$build_arch/$name-"$version"-"1.$release".$dist.$build_arch.rpm
    echo $rpmbuild/RPMS/$build_arch/$name-devel-"$version"-"1.$release".$dist.$build_arch.rpm
    echo -n "RPM lint for $name-"$version"-1."$release" (Y/N) - "
    read key
    if [ " $key" = " Y" -o " $key" = " y" ] ; then
      (
      echo $name
      rpmlint $rpmbuild/RPMS/$build_arch/$name-"$version"-"1.$release".$dist.$build_arch.rpm
      echo ------------------------
      echo $name-devel
      rpmlint $rpmbuild/RPMS/$build_arch/$name-devel-"$version"-"1.$release".$dist.$build_arch.rpm
      echo ------------------------
      echo $name-"$version"-"1.$release".$dist.src.rpm
      rpmlint $rpmbuild/SRPMS/$name-"$version"-"1.$release".$dist.src.rpm
      echo ------------------------
      ) 2>&1 | less
    fi
  else
    /bin/rm /tmp/$name.spec
  fi
fi
echo -n "Remove Source (Y/N) - "
read key
if [ " $key" = " Y" -o " $key" = " y" ] ; then
  /bin/rm -f $rpmbuild/SOURCES/$name-"$version".tar.gz $rpmbuild/SOURCES/$name-rpmlintrc
fi
