2015-07-17 17:07:00 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2015-07-18 01:39:18 +00:00
|
|
|
set -eu
|
2015-07-17 17:07:00 +00:00
|
|
|
|
2015-07-18 01:39:18 +00:00
|
|
|
REPO_DIR=${REPO_DIR:-/repo}
|
|
|
|
GIT_LFS_BUILD_DIR=${GIT_LFS_BUILD_DIR:-/tmp/docker_run/git-lfs}
|
|
|
|
SRC_DIR=${SRC_DIR:-/src}
|
|
|
|
|
2015-07-31 05:47:47 +00:00
|
|
|
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
|
2015-07-18 01:39:18 +00:00
|
|
|
|
|
|
|
mkdir -p $(dirname "${GIT_LFS_BUILD_DIR}")
|
|
|
|
cp -r -T "${SRC_DIR}" "${GIT_LFS_BUILD_DIR}"
|
|
|
|
|
|
|
|
cd "${GIT_LFS_BUILD_DIR}"
|
2015-07-22 03:47:01 +00:00
|
|
|
git clean -xdf . || ./rpm/clean.bsh #clean is needed when git isn't alread installed
|
2015-07-30 05:02:46 +00:00
|
|
|
touch "${GIT_LFS_BUILD_DIR}"/rpm/build.log
|
|
|
|
tail -f "${GIT_LFS_BUILD_DIR}"/rpm/build.log &
|
2015-07-18 01:39:18 +00:00
|
|
|
"${GIT_LFS_BUILD_DIR}"/rpm/build_rpms.bsh
|
2015-07-30 05:02:46 +00:00
|
|
|
pkill -P $$ tail
|
2015-09-11 06:57:39 +00:00
|
|
|
rpmbuild --nodeps --define "dist ${RPM_DIST}" --define "_topdir ${GIT_LFS_BUILD_DIR}/rpm/" --target=i686 -bb "${GIT_LFS_BUILD_DIR}"/rpm/SPECS/git-lfs.spec
|
2015-07-19 07:35:13 +00:00
|
|
|
if [ "${REPO_HOSTNAME-}" != "" ]; then
|
|
|
|
sed -r -i 's/(^baseurl=https?:\/\/)[^/]*/\1'"${REPO_HOSTNAME}"'/' ./rpm/SOURCES/git-lfs.repo
|
2015-07-18 06:43:53 +00:00
|
|
|
fi
|
|
|
|
|
2015-07-31 20:32:40 +00:00
|
|
|
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
|
|
|
|
|
2015-07-31 05:47:47 +00:00
|
|
|
rpmbuild --define "dist ${RPM_DIST}" --define "_topdir ${GIT_LFS_BUILD_DIR}/rpm" -ba ${GIT_LFS_BUILD_DIR}/rpm/SPECS/git-lfs-repo-release.spec
|
2015-07-17 17:07:00 +00:00
|
|
|
|
2015-07-26 00:01:11 +00:00
|
|
|
rsync -ra ${GIT_LFS_BUILD_DIR}/rpm/{SRPMS,RPMS} ${REPO_DIR}
|
|
|
|
|
2015-07-27 23:53:26 +00:00
|
|
|
if [ -s /tmp/*.key ]; then
|
2015-07-26 00:01:11 +00:00
|
|
|
find ${REPO_DIR} -name \*.rpm | xargs /tmp/rpm_sign.exp
|
2015-07-19 22:59:14 +00:00
|
|
|
fi
|
|
|
|
|
2015-08-16 18:03:04 +00:00
|
|
|
#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
|
2015-07-30 04:04:30 +00:00
|
|
|
|
2015-07-31 05:47:47 +00:00
|
|
|
if [ "${FINAL_UID-}:${FINAL_GID-}" != ":" ]; then
|
|
|
|
chown ${FINAL_UID-}:${FINAL_GID-} -R /repo
|
|
|
|
fi
|