You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.1 KiB

5 years ago
#!/bin/bash
name=magnum
cd ../../
# get latest tag for empty param
if [[ -z ${1} ]];
then
version=$(git describe --abbrev=0);
else
version="${1}"
fi
# try to get hash for input param
hash=$(git rev-parse --short ${version})
if [ "$?" -ne "0" ];
then
echo "------------------------------------------------------------------"
echo "Build FAILED"
echo "USAGE: parameter should be either 'master' or any valid git tag|hash or no parameter for last tag";
5 years ago
exit 1;
fi
# if hash provided as input param then name version as "hash"
if [ "${version}" == "${hash}" ];
then
version="hash"
fi
# create the file tree you need to build RPM packages
rpmdev-setuptree
# create release string
release=${hash}$(rpmbuild --eval=%{?dist});
# create package name string
package_name=${name}-${version}-${release}
# archive sources as ${package_name}.tar.gz into rpm source dir
tarfile=$(rpmbuild --eval=%{_sourcedir})/${package_name}.tar
git archive --prefix=${name}-${version}/ -o ${tarfile} ${hash}
gzip -nf ${tarfile}
cd ./package/rpm
# modify Version and Release in rpm spec file
specfile=$(rpmbuild --eval=%{_specdir})/${package_name}.spec
cp ${name}.spec ${specfile}
sed -i "s/Version:.\+/Version: ${version}/g" ${specfile}
sed -i "s/Release:.\+/Release: ${hash}%{?dist}/g" ${specfile}
# build rpm into rpm build dir
rpmbuild -bb ${specfile}
# tell user what is the result of efforts
if [ "$?" -ne "0" ];
then
echo "------------------------------------------------------------------"
echo "Build of '${package_name}' FAILED"
echo "Specfile: ${specfile}"
echo "Get more info above"
exit 1;
else
echo "------------------------------------------------------------------"
echo "Build of '${package_name}' SUCCEED"
echo "USAGE: pass either 'master' or any valid git tag|hash or no parameter for last tag"
5 years ago
echo "Specfile: ${specfile}"
arch=$(rpmbuild --eval=%{_arch})
rpmdir=$(rpmbuild --eval=%{_rpmdir})
echo "To install them run next command:"
echo " $ sudo rpm -Uhv ${rpmdir}/${arch}/${name}*${version}-${release}.${arch}.rpm"
fi