git-lfs/docker/centos_script.bsh
2015-08-22 21:03:41 -04:00

77 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eu
REPO_DIR=${REPO_DIR:-/repo}
GIT_LFS_BUILD_DIR=${GIT_LFS_BUILD_DIR:-/tmp/docker_run/git-lfs}
SRC_DIR=${SRC_DIR:-/src}
if [ -e /etc/os-release ]; then
VERSION_ID=$(source /etc/os-release; echo ${VERSION_ID})
OS_NAME=$(source /etc/os-release; echo ${NAME})
OS_NAME=${OS_NAME,,}
else #Basically Centos 5/6
VERSION_ID=($(head -n 1 /etc/redhat-release | \grep -Eo '[0-9]+'))
OS_NAME=$(awk '{print tolower($1)}' /etc/redhat-release)
#Stupid ancient bash 3...
fi
case "${OS_NAME}" in
centos*|red*)
RPM_DIST=".el${VERSION_ID}"
;;
fedora)
RPM_DIST=".fc${VERSION_ID}"
;;
sles)
RPM_DIST=".sles${VERSION_ID}"
;;
opensuse)
RPM_DIST=".opensuse${VERSION_ID}"
;;
*)
RPM_DIST="%{nil}"
;;
esac
mkdir -p $(dirname "${GIT_LFS_BUILD_DIR}")
cp -r -T "${SRC_DIR}" "${GIT_LFS_BUILD_DIR}"
cd "${GIT_LFS_BUILD_DIR}"
git clean -xdf . || ./rpm/clean.bsh #clean is needed when git isn't alread installed
touch "${GIT_LFS_BUILD_DIR}"/rpm/build.log
tail -f "${GIT_LFS_BUILD_DIR}"/rpm/build.log &
"${GIT_LFS_BUILD_DIR}"/rpm/build_rpms.bsh
pkill -P $$ tail
rpmbuild --define "dist ${RPM_DIST}" --define "_topdir ${GIT_LFS_BUILD_DIR}/rpm/" --target=i686 -bb "${GIT_LFS_BUILD_DIR}"/rpm/SPECS/git-lfs.spec
if [ "${REPO_HOSTNAME-}" != "" ]; then
sed -r -i 's/(^baseurl=https?:\/\/)[^/]*/\1'"${REPO_HOSTNAME}"'/' ./rpm/SOURCES/git-lfs.repo
fi
if [ -s /tmp/*.key ]; then
gpg --allow-secret-key-import --import /tmp/*.key || :
gpg -a --export > /repo/RPM-GPG-KEY-GITLFS
cp /repo/RPM-GPG-KEY-GITLFS ${GIT_LFS_BUILD_DIR}/rpm/SOURCES
fi
rpmbuild --define "dist ${RPM_DIST}" --define "_topdir ${GIT_LFS_BUILD_DIR}/rpm" -ba ${GIT_LFS_BUILD_DIR}/rpm/SPECS/git-lfs-repo-release.spec
rsync -ra ${GIT_LFS_BUILD_DIR}/rpm/{SRPMS,RPMS} ${REPO_DIR}
if [ -s /tmp/*.key ]; then
find ${REPO_DIR} -name \*.rpm | xargs /tmp/rpm_sign.exp
fi
#Patch for http://createrepo.baseurl.org/gitweb?p=createrepo.git;a=commitdiff;h=c5a292f58aa81ab2d8c5485455adfd3d0ac65aea
#Has been patched in fedora 22, but not centos 5-7 :(
#Which affects virtual box in windows, probably is CIFS underneath the hood
mv ${REPO_DIR}/SRPMS /tmp/SRPMS
mv ${REPO_DIR}/RPMS /tmp/RPMS
createrepo /tmp/SRPMS
createrepo /tmp/RPMS
mv /tmp/SRPMS ${REPO_DIR}/SRPMS
mv /tmp/RPMS ${REPO_DIR}/RPMS
if [ "${FINAL_UID-}:${FINAL_GID-}" != ":" ]; then
chown ${FINAL_UID-}:${FINAL_GID-} -R /repo
fi