|
#!/bin/bash |
|
|
|
BRANCH="master" |
|
BOOST="/usr" |
|
declare -i NO_RPM_BUILD=0 |
|
declare -i RELEASE=1 |
|
declare -r RPM_VERSION_TAG="___RPM_VERSION__" |
|
declare -r RPM_RELEASE_TAG="___RPM_RELEASE__" |
|
declare -r BOOST_TAG="___BOOST_LOCATION__" |
|
|
|
function usage() { |
|
echo "`basename $0` -r [Moses Git repo] -b [Moses Git branch: default ${BRANCH}] -v [RPM version] -l [RPM release: default ${RELEASE}] -t [Boost install: default ${BOOST}]" |
|
exit 1 |
|
} |
|
|
|
if [ $# -lt 4 ]; then |
|
usage |
|
fi |
|
|
|
while getopts r:b:t:v:l:nh OPTION |
|
do |
|
case "$OPTION" in |
|
r) REPO="${OPTARG}";; |
|
b) BRANCH="${OPTARG}";; |
|
t) BOOST="${OPTARG}";; |
|
v) VERSION="${OPTARG}";; |
|
l) RELEASE="${OPTARG}";; |
|
n) NO_RPM_BUILD=1;; |
|
[h\?]) usage;; |
|
esac |
|
done |
|
|
|
if [ ! -d ./rpmbuild ]; then |
|
echo "RPM build directory not in current working direcotry" |
|
exit 1 |
|
fi |
|
|
|
declare -r MOSES_DIR="moses-${VERSION}" |
|
git clone ${REPO} ${MOSES_DIR} |
|
if [ $? -ne 0 ]; then |
|
echo "Failed to clone Git repository ${REPO}" |
|
exit 3 |
|
fi |
|
|
|
cd ${MOSES_DIR} |
|
|
|
git checkout ${BRANCH} |
|
if [ $? -ne 0 ]; then |
|
echo "Failed to checkout branch ${BRANCH}" |
|
exit 3 |
|
fi |
|
|
|
cd .. |
|
|
|
tar -cf moses-${VERSION}.tar ${MOSES_DIR} |
|
gzip -f9 moses-${VERSION}.tar |
|
|
|
if [ ${NO_RPM_BUILD} -eq 0 ]; then |
|
if [ ! -d ${HOME}/rpmbuild/SPECS ]; then |
|
mkdir -p ${HOME}/rpmbuild/SPECS |
|
fi |
|
ESC_BOOST=`echo ${BOOST} | gawk '{gsub(/\//, "\\\\/"); print}'` |
|
eval sed -e \"s/${RPM_VERSION_TAG}/${VERSION}/\" -e \"s/${RPM_RELEASE_TAG}/${RELEASE}/\" -e \"s/${BOOST_TAG}/${ESC_BOOST}/\" ./rpmbuild/SPECS/moses.spec > ${HOME}/rpmbuild/SPECS/moses.spec |
|
if [ ! -d ${HOME}/rpmbuild/SOURCES ]; then |
|
mkdir -p ${HOME}/rpmbuild/SOURCES |
|
fi |
|
mv moses-${VERSION}.tar.gz ${HOME}/rpmbuild/SOURCES |
|
fi |
|
|
|
rm -Rf ${MOSES_DIR} |
|
|