#!/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 createrepo ${REPO_DIR}/SRPMS createrepo ${REPO_DIR}/RPMS if [ "${FINAL_UID-}:${FINAL_GID-}" != ":" ]; then chown ${FINAL_UID-}:${FINAL_GID-} -R /repo fi