#!/bin/sh -x

#set to 0 if you don't want to pack obvious
INCLUDE_OBVIOUS=0

# variables
CWD=$(pwd)

PRGNAM=awesome
BRANCH=master
VERSION=${VERSION:-${BRANCH}_$(date +"%Y.%m.%d_%H.%M")}
ARCH=${ARCH:-$(uname -m)}
BUILD=1


TAG=cyco
TMP=/tmp/$TAG
PKG=$TMP/pkg-$PRGNAM
OUTPUT=/tmp

REPOSITORIES=/home/cycojesus/projets/packages/repositories

PREFIX=/usr

SLCKFLAGS=""

function git_clone_or_pull() {
    REPO_URL=$1
    REPO_NAME=$2
    if [ ! -e $REPOSITORIES/$REPO_NAME ]; then
        git clone $REPO_URL $REPOSITORIES/$REPO_NAME
    else
        ( cd $REPOSITORIES/$REPO_NAME
            git pull
        )
    fi
}

# nettoyage préalable
rm -fr $PKG $TMP/$PRGNAM-$VERSION

mkdir -p $PKG

# mise en place
cd $TMP
SRC_PATH=$REPOSITORIES/$PRGNAM
if [ -e $CWD/$PRGNAM-$VERSION.tar.?z* ] ; then
    tar xf $CWD/$PRGNAM-$VERSION.tar.?z*
    SRC_PATH=.
    cd $TMP/$PRGNAM-$VERSION
else
    git_clone_or_pull git://git.naquadah.org/$PRGNAM.git $PRGNAM
    rm -fr $TMP/$PRGNAM-$VERSION
    mkdir -p $TMP/$PRGNAM-$VERSION
    cd $TMP/$PRGNAM-$VERSION
fi

# configuration
cmake \
    -DPREFIX=$PREFIX \
    -DSYSCONFDIR=/etc \
    -DAWESOME_DOC_PATH=$PREFIX/doc/$PRGNAM \
    -DAWESOME_MAN_PATH=$PREFIX/man \
    $SRC_PATH


# compilation
make -j3

# installation
make install DESTDIR=$PKG
mkdir -p $PKG/etc/X11/xinit/
cp $CWD/xinitrc.$PRGNAM $PKG/etc/X11/xinit/
chmod +x $PKG/etc/X11/xinit/xinitrc.$PRGNAM

if [ $INCLUDE_OBVIOUS == 1 ] ; then
    git_clone_or_pull git://git.mercenariesguild.net/obvious.git obvious

    cp -R $REPOSITORIES/obvious $PKG/usr/share/$PRGNAM/lib/
fi

# correction
cd $PKG
chown -R root:root *

find $PKG -name \.git\* -exec rm -fr {} \;

[ -d $PKG/usr/man ] && find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;

# Strip binaries
( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)


# embaumement
mkdir -p $PKG/install
cat <<EOF > $PKG/install/slack-desc
$PRGNAM: $PRGNAM (Window Manager "Framework")
$PRGNAM:
$PRGNAM: $PRGNAM is an extremely fast, small, and dynamic window manager for X.
$PRGNAM:
$PRGNAM:
$PRGNAM:
$PRGNAM:
$PRGNAM: http://$PRGNAM.naquadah.org
$PRGNAM: see /usr/doc/$PRGNAM-$VERSION for more details
$PRGNAM:
EOF
if [ $INCLUDE_OBVIOUS == 1 ] ; then
echo "$PRGNAM: [ include obvious ( http://$PRGNAM.naquadah.org/wiki/Obvious ) ]" >> $PKG/install/slack-desc
else
echo "$PRGNAM:" >> $PKG/install/slack-desc
fi

# empaquetage
cd $PKG
makepkg -l y -c n $OUTPUT/$PRGNAM-$(echo $VERSION | sed 's/-//g')-$ARCH-$BUILD$TAG.txz