#!/bin/bash
#
# Temporary hack for producing a binary dev distribution.
# Includes regular stuff from 'make install' + examples and headers.
#
# TODO: Also include debug libraries.
#

Usage() {
  echo "usage: $0 [release-version]
   release-version   e.g. 1.0M1 (defaults to the svn revision)" >&2
  exit 2
}

if [[ $# -eq 1 ]]; then
  [[ $1 == "-?" ]] && Usage
  version=$1
elif [[ $# -ne 0 ]]; then
  Usage
else
  # Default the version to the svn revision
  if which svn >/dev/null 2>&1; then
    svnRevision=$(svn info | grep ^Revision: | awk '{print $2}')
    version=r${svnRevision}
  else
    echo "You need to have svn in your PATH or specify a release-version"
    exit 2
  fi
fi

releaseName=qpid-cpp-dev-${version}-$(uname -s)-$(uname -p)
releaseDir=release/$releaseName

if [[ -d $releaseDir ]]; then
  echo "$releaseDir already exists"
  exit 2
fi

# Copy bin.
mkdir -p $releaseDir/bin
cp -r src/.libs/* ${releaseDir}/bin

# Copy libs.
mkdir -p $releaseDir/lib
cp lib/broker/.libs/lib* lib/common/.libs/lib* lib/client/.libs/lib* \
    $releaseDir/lib

# Copy gen include files.
find gen -name \*.h | while read file; do
  destFile=${releaseDir}/include/$file
  baseDir=$(dirname $destFile)
  mkdir -p $baseDir
  cp $file $destFile
done

# Copy in lib include files.
(
  cd lib; find . -name \*.h | while read file; do
    destFile=../${releaseDir}/include/$file
    baseDir=$(dirname $destFile)
    mkdir -p $baseDir
    cp $file $destFile
  done
)

# Copy non-cppunit tests as examples.
mkdir -p $releaseDir/examples
for file in tests/*.cpp; do
  if grep CppUnit $file >/dev/null; then
     echo Skipping cppunit file $file
  else
     cp $file $releaseDir/examples
  fi
done

# Copy Makefile and README for examples.
cp tests/examples.Makefile $releaseDir/examples/Makefile
cp tests/examples.README $releaseDir/examples/README

cd release
tar=$releaseName.tar
tar cvf $tar $releaseName
bzip2 $tar
