#!/bin/sh
#
# Builds a deb package 
# run this script from the root of the trunk
# the deb package will get created in the trunk directory
# usage: <debian|ubuntu>
export CDPATH=
base=`dirname $0`
cd $base/../../
which star > /dev/null 2>&1
if [ $? -eq 1 ]; then
 echo You need \"star\" to run this, install it!
 exit 1
fi

if [ "$1" != "debian" ] && [ "$1" != "ubuntu" ]; then
 echo "The first argument has to be either <ubuntu|debian>!"
 exit 1
fi

SHARE_CONVIRT=usr/share/convirt
USR_BIN=usr/bin
VAR_CACHE_CONVIRT=var/cache/convirt
SCRIPT_DIR=install/client

name=`grep Name: $base/convirt.spec | cut -d ' ' -f 2`
version=`grep Version: $base/convirt.spec | cut -d ' ' -f 2`

mkdir $name-$version
mkdir -p $name-$version/DEBIAN
mkdir -p $name-$version/$SHARE_CONVIRT
mkdir -p $name-$version/$VAR_CACHE_CONVIRT/networks
mkdir -p $name-$version/etc
mkdir -p $name-$version/usr/share/doc/$name-$version
mkdir -p $name-$version/$USR_BIN

##Deb package scripts
cp $SCRIPT_DIR/$1/control $name-$version/DEBIAN/control
cp $SCRIPT_DIR/deb.prerm $name-$version/DEBIAN/prerm
cp $SCRIPT_DIR/deb.postinstall $name-$version/DEBIAN/postinst
cp $SCRIPT_DIR/conffiles $name-$version/DEBIAN/conffiles

star -copy src/* $name-$version/$SHARE_CONVIRT 
star -copy doc/* $name-$version/$SHARE_CONVIRT
star -copy doc/* $name-$version/usr/share/doc/$name-$version
star -copy install/* $name-$version/$SHARE_CONVIRT
(cd install/client; star -copy ConVirt ../../$name-$version/$SHARE_CONVIRT)
(cd install/client; star -copy convirt-cli ../../$name-$version/$SHARE_CONVIRT)
star -copy common/* $name-$version/$SHARE_CONVIRT
star -copy image_store/* $name-$version/$VAR_CACHE_CONVIRT	
star -copy storage/* $name-$version/$SHARE_CONVIRT
star -copy appliance_store/* $name-$version/$VAR_CACHE_CONVIRT	
star -copy nw/* $name-$version/$SHARE_CONVIRT



# file permissions
chmod 744 $name-$version/$VAR_CACHE_CONVIRT/image_store/CentOS_PV_Install/provision.sh
chmod 744 $name-$version/$VAR_CACHE_CONVIRT/image_store/Fedora_PV_Install/provision.sh
chmod 744 $name-$version/$VAR_CACHE_CONVIRT/image_store/Windows_CD_Install/provision.sh
chmod 744 $name-$version/$VAR_CACHE_CONVIRT/image_store/Linux_CD_Install/provision.sh
chmod 744 $name-$version/$VAR_CACHE_CONVIRT/image_store/_template_/provision.sh
chmod 744 $name-$version/$VAR_CACHE_CONVIRT/image_store/example/provision.sh
chmod 744 $name-$version/$SHARE_CONVIRT/src/convirt/core/appliance/xen/provision.sh

chmod 744 $name-$version/$SHARE_CONVIRT/storage/scripts/nfs/storage.sh
chmod 744 $name-$version/$SHARE_CONVIRT/storage/scripts/aoe/storage.sh
chmod 744 $name-$version/$SHARE_CONVIRT/storage/scripts/iscsi/storage.sh
chmod 744 $name-$version/$SHARE_CONVIRT/nw/scripts/nw.sh

#File copying
cp $name-$version/$SHARE_CONVIRT/install/client/distros/ubuntu/convirt.conf $name-$version/etc/convirt.conf

chown -R root:root $name-$version

# cleanup 
find $name-$version/ -name .svn -exec rm -rf '{}' \; >/dev/null 2>&1
find $name-$version/ -name *~ -exec rm -f '{}' \; >/dev/null 2>&1
find $name-$version/ -name .pyc -exec rm -f '{}' \; >/dev/null 2>&1
find $name-$version/ -name .hash -exec rm -f '{}' \; >/dev/null 2>&1
find $name-$version/ -name .bak -exec rm -f '{}' \; >/dev/null 2>&1

# create a deb package
mkdir output
dpkg -b $name-$version output
mv output/*.deb .

# cleanup
rm -rf $name-$version
rm -rf output
