1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
#!/bin/bash
#
export PROJECT=eatmydata
#
show_help(){
echo -e "Wrong ARG: \033[00;31m$1\033[00m"
cat << EOF
--emd-version - set VERSION for RPM
--emd-release - set RELEASE for RPM
--rpm-builddir - set RPMBUILD directory
--sign - sign built RPM
EOF
}
#
if [ -z "${WORKSPACE}" ]; then
export WORKSPACE=$(readlink -f $(dirname $0))
fi
#
cd "${WORKSPACE}"
#
while [ $# -gt 0 ]; do
case $1 in
--emd-version)
export EMD_VERSION=$2
shift 2
;;
--emd-release)
export EMD_RELEASE=$2
shift 2
;;
--rpm-builddir)
export RPMBUILD=$(readlink -f $2)
shift 2
;;
--sign)
export SIGN="--sign"
;;
*)
show_help $1
exit 1
;;
esac
done
#
if [ -z "${RPMBUILD}" ]; then
export RPMBUILD=${HOME}/rpmbuild
fi
#
rm -fr "${RPMBUILD}"
mkdir -p ${RPMBUILD}/{BUILD,RPMS,S{OURCE,PEC,RPM}S}
#
if [ -z "${EMD_VERSION}" ]; then
export EMD_VERSION=0.1
fi
#
#release variable handling
#
if [ -n "$(which bzr 2>/dev/null)" ]; then
BZR_REVNO=$(bzr revno)
if [ $? -eq 0 ]; then
export BZR_REVNO #bzr tree is valid
fi
fi
#
[ -z "${BZR_REVNO}" ] && export BZR_REVNO=00 #not a bzr tree or bzr binary not found
#
if [ -z "${BUILD_NUMBER}" ]; then
export BUILD_NUMBER=00
fi
#
if [ -z "${EMD_RELEASE}" ]; then
export EMD_RELEASE="${BZR_REVNO}.${BUILD_NUMBER}"
fi
#
#tarball creation
mTMPDIR=/var/tmp/${PROJECT}-${EMD_VERSION}
rm -fr ${mTMPDIR}
mkdir -p ${mTMPDIR}
cp -a ${WORKSPACE}/* ${mTMPDIR}
cd /var/tmp && tar --exclude=.bzr -czf ${RPMBUILD}/SOURCES/${PROJECT}-${EMD_VERSION}.tar.gz ${PROJECT}-${EMD_VERSION}
rm -fr ${mTMPDIR}
#
cd ${WORKSPACE}
#
sed -e "s:@VERSION@:${EMD_VERSION}:g" \
-e "s:@RELEASE@:${EMD_RELEASE}:" \
${WORKSPACE}/${PROJECT}.spec > ${RPMBUILD}/SPECS/${PROJECT}.spec
#
rpmbuild -ba --define "_topdir ${RPMBUILD}" ${RPMBUILD}/SPECS/${PROJECT}.spec
|