1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00
Files
wmaker/debian/nightly_build.sh

110 lines
2.3 KiB
Bash
Executable File

#!/bin/sh
CHLOGBKP="/tmp/$$-chlog"
#BASEVERSION="0.94.0"
BASEVERSION="`head -1 debian/changelog | cut -d\( -f2 | cut -d\- -f1`"
REPOVERSION="git-`date +%Y%m%d-%H%M`"
CHANGELOG="Automatic build from the GIT on `date`"
BUILDLOG="${HOME}/log/wmaker-testing-nightly.log"
STATUSCMD="git log -1 --pretty=oneline"
PULLCMD="git pull --rebase"
if [ -n "${WMAKER_DISTRO}" ]; then
case ${WMAKER_DISTRO} in
unstable)
BUILDLOG="${HOME}/log/wmaker-unstable-nightly.log"
;;
esac
fi
FORCE="0"
if [ $# -gt 0 ]; then
case $1 in
-f|--force)
FORCE="1"
;;
*)
echo "Usage $0 [-f|--force]"
exit 0
;;
esac
fi
cleanup() {
test -f ${CHLOGBKP} && mv ${CHLOGBKP} debian/changelog
}
errorExit() {
echo "$@" 1>&2
cleanup
exit 2
}
doPull() {
RC="1"
LATEST="`$STATUSCMD`"
dh_clean
git reset --hard HEAD
git clean -f
$PULLCMD >>$BUILDLOG 2>&1 || errorExit "Error pulling from the repo"
CURRENT="`$STATUSCMD`"
if [ "$FORCE" = "1" -o "$LATEST" != "$CURRENT" ]; then
echo "last revision: $LATEST" >>$BUILDLOG
echo "new revision: $CURRENT" >>$BUILDLOG
echo "FORCE: $FORCE" >>$BUILDLOG
RC="0"
else
echo "No changes to build, and FORCE not given." >>$BUILDLOG
fi
return $RC
}
doEnv() {
for var in `env | grep GNUSTEP | sed "s/=.*//"`; do
unset $var
done
}
doChlog() {
cp debian/changelog ${CHLOGBKP}
debchange -v ${BASEVERSION}-${REPOVERSION}-1 "${CHANGELOG}" || return 1
}
doTarball() {
echo tar -czf ../wmaker_${BASEVERSION}-${REPOVERSION}.orig.tar.gz .
tar -czf ../wmaker_${BASEVERSION}-${REPOVERSION}.orig.tar.gz .
}
doBuild() {
ARGS=""
if [ -n "${WM_GPG_KEY}" ]; then
ARGS="-k${WM_GPG_KEY}"
fi
dpkg-buildpackage -rfakeroot $ARGS >>${BUILDLOG} 2>&1
}
install -d `dirname $BUILDLOG`
>$BUILDLOG
trap 'cleanup; exit 2' 2
trap 'cleanup; exit 2' 9
trap 'cleanup; exit 2' 15
test -d debian || errorExit "This script must be called from the toplevel source dir, ./debian must exist."
#git status | grep modified: | awk '{ print $3 }' | xargs git checkout
git checkout -f >/dev/null
RC=0
if doPull ; then
doEnv
doChlog || errorExit "Error adding new changelog entry."
doTarball || errorExit "Error building source tarball."
doBuild || errorExit "Error during build of .deb package."
else
RC=1
fi
cleanup
exit $RC