123 lines
3.0 KiB
Bash
Executable File
123 lines
3.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
USAGE="""Usage: $0 GIT_REPOSITORY_NAME DISTRIBUTION [ARCHITECTURE]\n
|
|
\n
|
|
GIT_REPOSITORY_NAME: respository name without .git\n
|
|
DISTRIBUTION: Debian distroibution like : squeeze, wheezy, ...\n
|
|
ARCHITECTURE: amd64 or i368 (Default: amd64)"""
|
|
|
|
GIT_REPOSITORY_URL="git+ssh://git@repos.entrouvert.org"
|
|
GIT_PATH="/var/lib/eobuilder/git"
|
|
PBUILDER_RESULT="/var/lib/eobuilder/results"
|
|
|
|
|
|
error()
|
|
{
|
|
echo $1 >& 2
|
|
exit 1
|
|
}
|
|
|
|
if [ $# -lt 2 ]; then
|
|
error "$USAGE"
|
|
fi
|
|
|
|
if [ "$(whoami)" != "eobuilder" ]; then
|
|
error "You must run be eobuilder to launch this script"
|
|
fi
|
|
|
|
set -e
|
|
|
|
GIT_NAME=$1
|
|
DIST=$2
|
|
if [ "$3" ]; then
|
|
ARCH=$3
|
|
else
|
|
ARCH="amd64"
|
|
fi
|
|
|
|
if [ ! -d $GIT_PATH ]; then
|
|
mkdir $GIT_PATH
|
|
fi
|
|
|
|
PBUILDER_PROJECT_RESULT="${PBUILDER_RESULT}/${DIST}-${ARCH}/"
|
|
PROJECT_NAME=$GIT_NAME
|
|
BUILD_DIR="/var/tmp/$PROJECT_NAME"
|
|
GIT_PROJECT_PATH="$GIT_PATH/$GIT_NAME"
|
|
|
|
echo "+ Cloning git repository"
|
|
if [ ! -d $GIT_PROJECT_PATH ]; then
|
|
echo "+ git clone $GIT_REPOSITORY_URL/$GIT_NAME.git"
|
|
cd $GIT_PATH
|
|
git clone $GIT_REPOSITORY_URL/$GIT_NAME.git
|
|
fi
|
|
|
|
echo "+ Updating git repository and parsing configuration ..."
|
|
cd $GIT_PROJECT_PATH
|
|
git checkout master
|
|
git pull
|
|
VERSION=`git describe | tr - . | sed 's/^v//'`
|
|
COMMIT_NUMBER=`git log -n1 | grep 'commit' | sed 's/commit\s*//'`
|
|
|
|
git checkout debian
|
|
git pull
|
|
PACKAGE_NAME=`cat debian/control | sed 's/^Source\s*:\s*//; t; d'`
|
|
LAST_DEBIAN_PACKAGE_VERSION=`dpkg-parsechangelog | sed 's/^Version: //; t; d'`
|
|
LAST_DEBIAN_INC=`echo $LAST_DEBIAN_PACKAGE_VERSION | cut -d '-' -f2`
|
|
LAST_VERSION=`echo $LAST_DEBIAN_PACKAGE_VERSION | cut -d '-' -f1`
|
|
|
|
# Find and increment Debian version number
|
|
if [ "$LAST_VERSION" = "$VERSION" ]; then
|
|
INC_VERSION=$(($LAST_DEBIAN_INC + 1))
|
|
else
|
|
INC_VERSION=1
|
|
fi
|
|
|
|
PACKAGE_VERSION="$VERSION-$INC_VERSION"
|
|
|
|
echo "+ Generating sdist ..."
|
|
git checkout master
|
|
python setup.py sdist --formats=bztar
|
|
|
|
echo "+ Prepararing debian build ($PACKAGE_NAME $PACKAGE_VERSION) ..."
|
|
git checkout debian
|
|
mkdir -p $BUILD_DIR
|
|
echo $GIT_PROJECT_PATH/dist/$PROJECT_NAME-$VERSION.tar.bz2
|
|
mv $GIT_PROJECT_PATH/dist/$PROJECT_NAME-$VERSION.tar.bz2 /var/tmp/$PROJECT_NAME/${PACKAGE_NAME}_${VERSION}.orig.tar.bz2
|
|
cd $BUILD_DIR
|
|
tar xfvj ${PACKAGE_NAME}_${VERSION}.orig.tar.bz2
|
|
cp -r $GIT_PROJECT_PATH/debian $BUILD_DIR/$PROJECT_NAME-$VERSION
|
|
cd $PROJECT_NAME-$VERSION
|
|
|
|
echo """${PACKAGE_NAME} (${PACKAGE_VERSION}) ${DIST}; urgency=low
|
|
|
|
* Automatic version : commit ${COMMIT_NUMBER}
|
|
|
|
-- Jérôme Schneider <info@entrouvert.com> `date -R`
|
|
"" " > debian/new_changelog
|
|
|
|
cat debian/changelog >> debian/new_changelog
|
|
mv debian/new_changelog debian/changelog
|
|
|
|
|
|
echo "+ Building package ..."
|
|
if [ ! -d $PBUILDER_PROJECT_RESULT ]; then
|
|
mkdir -p $PBUILDER_PROJECT_RESULT
|
|
fi
|
|
|
|
DIST=$DIST ARCH=$ARCH pdebuild
|
|
|
|
echo "+ Commit changelog"
|
|
cd $GIT_PROJECT_PATH
|
|
git checkout debian
|
|
git commit debian/changelog -m 'Automatic: new debian package'
|
|
|
|
echo "+ Sending package ..."
|
|
cd $PBUILDER_PROJECT_RESULT
|
|
dput -u $DIST-experimental ${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCH}.changes
|
|
|
|
echo "+ Cleanning ..."
|
|
if [ "$PROJECT_NAME" ]; then
|
|
rm -rf $BUILD_DIR
|
|
fi
|
|
|