build 1.23 KB
#!/bin/bash
#
# A little helper script to build the RPM.

if [ ! -f "../package.json" ]; then
    echo "Execute rpm build script in rpm directory"
    exit 1
fi

name="casperjs"
name=${name%.spec}
topdir=$(mktemp -d "${TMPDIR:-/tmp}/${name}-build-XXXXXX")
# Get version from package.json
version=$(grep '"version"' ../package.json | sed 's/.*"\(.*\)": "\(.*\)".*/\2/' | sed 's/[-]//')
builddir=${TMPDIR:-/tmp}/${name}-${version}
sourcedir="${topdir}/SOURCES"
buildroot="${topdir}/BUILD/${name}-${version}-root"

mkdir -p ${topdir}/{RPMS,SRPMS,SOURCES,BUILD}
mkdir -p ${buildroot} ${builddir}

echo "=> Copying sources..."
( cd .. && tar cf - ./[A-Z]* ./package.json ./bin ./samples ./tests ./modules | tar xf - -C ${builddir} )

echo "=> Creating source tarball under ${sourcedir}..."
( cd ${builddir}/.. && tar zcf ${sourcedir}/${name}-${version}.tar.gz ${name}-${version} )

echo "=> Building RPM..."
rpm=$(rpmbuild --define "_topdir ${topdir}" --define "_version ${version}" --buildroot ${buildroot} --clean -bb ${name}.spec | awk '/\/RPMS\// { print $2; }')

if [ $? -ne 0 ]; then
    echo "Failed to build RPM package."
    exit 1
fi

echo ${rpm}
cp ${rpm} ${TMPDIR:-/tmp}/
rm -fr ${topdir}

echo "RPM package build finished."
echo ${TMPDIR:-/tmp}/${rpm##*/}