Subversion Repositories general

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1176 → Rev 1177

/rebootd/trunk/bin/make_release.sh
0,0 → 1,70
#!/bin/sh
 
#
# make a release (source code tar) of the project
# needs two params: major and minor version of the release
#
 
PROJ=rebootd
OUTDIR=output
PROG=${OUTDIR}/${PROJ}
SRCDIR=src
SRCS=${SRCDIR}/rebootd.c
 
VER_MAJOR=$1
VER_MINOR=$2
VER_REVISION=`svnversion .`
RELEASE_NAME=${PROJ}-${VER_MAJOR}.${VER_MINOR}.${VER_REVISION}
 
SAMPLES=${SRCDIR}/rebootd.conf
RELDIR=${OUTDIR}/release
COMMITDIR=releases
WEBDIR=26th.net:www/26th.net/html/public/projects/rebootd/bin # scp format
 
# check params
[ -n "${VER_MINOR}" ] || { echo "Version not specified" >> /dev/stderr; exit 1; }
 
# only commited revisions are allowed for release
if ( ! echo $VER_REVISION | grep -E '^[0-9]+$' > /dev/null ) ; then
echo "Cannot make release - current revision $VER_REVISION not commited" >> /dev/stderr
exit 1;
fi
 
# create the tar
rm -rf ${RELDIR} \
|| { echo "Cannot delete ${RELDIR} dir" >> /dev/stderr; exit 2; }
mkdir ${RELDIR} \
|| { echo "Cannot create ${RELDIR} dir" >> /dev/stderr; exit 2; }
cp -r ${SRCDIR} ${RELDIR}/${RELEASE_NAME} \
|| { echo "Cannot copy ${SRCDIR} to ${RELDIR}/${RELEASE_NAME}" >> /dev/stderr; exit 2; }
sed -e 's/%VER_MAJOR%/${VER_MAJOR}/' -e 's/%VER_MINOR%/${VER_MINOR}/' \
-e 's/%VER_REVISION%/${VER_REVISION}/' ${SRCDIR}/Makefile \
> ${RELDIR}/${RELEASE_NAME}/Makefile \
|| { echo "Cannot generate ${RELDIR}/${RELEASE_NAME}/Makefile" >> /dev/stderr; exit 2; }
tar cf - --exclude '*/.svn' -C ${RELDIR} ${RELEASE_NAME} | gzip > ${OUTDIR}/${RELEASE_NAME}.tar.gz \
|| { echo "Cannot create ${OUTDIR}/${RELEASE_NAME}.tar.gz" >> /dev/stderr; exit 2; }
rm -rf ${RELDIR} \
|| { echo "Cannot clear ${RELDIR} dir" >> /dev/stderr; exit 2; }
 
# commit the release
echo "Relase made successfully. Enter YES to commit it."
read confirm
if [ "$confirm" != "YES" ] ; then
echo "you have to answer 'YES' to continue"
exit 1
fi
 
cp ${OUTDIR}/${RELEASE_NAME}.tar.gz ${COMMITDIR} \
|| { echo "Cannot copy ${OUTDIR}/${RELEASE_NAME}.tar.gz to releases" >> /dev/stderr; exit 2; }
svn add ${COMMITDIR}/${RELEASE_NAME}.tar.gz \
|| { echo "Cannot add ${COMMITDIR}/${RELEASE_NAME}.tar.gz to repository" >> /dev/stderr; exit 2; }
svn commit ${COMMITDIR}/${RELEASE_NAME}.tar.gz \
-m "${PROJ}: auto commit of new release ${VER_MAJOR}.${VER_MINOR}.${VER_REVISION}" \
|| { echo "Cannot commit ${COMMITDIR}/${RELEASE_NAME}.tar.gz" >> /dev/stderr; exit 2; }
 
# publish web
scp ${COMMITDIR}/${RELEASE_NAME}.tar.gz ${WEBDIR} \
|| { echo "Cannot publish ${COMMITDIR}/${RELEASE_NAME}.tar.gz to ${WEBDIR}" >> /dev/stderr; exit 2; }
 
echo "Release ${RELEASE_NAME} is commited and published"
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property