#!/bin/bash # Copyright (c) 2017 Icinga Development Team # Licensed as GPL-2.0+ set -e while getopts ":p:U:b:" opt do case "$opt" in p) PROJECT="$OPTARG" ;; U) UPSTREAM_GIT_URL="$OPTARG" ;; b) UPSTREAM_GIT_BRANCH="$OPTARG" ;; \?) echo "Unknown argument: $OPTARG" >&2 exit 1 ;; esac done : ${PROJECT:=icinga2} : ${UPSTREAM_GIT_URL:=https://github.com/Icinga/$PROJECT.git} : ${UPSTREAM_GIT_BRANCH:=master} workdir=`pwd` set -x if [ -d "${PROJECT}.git/" ]; then cd "${PROJECT}.git" if [ ! -d .git ]; then echo "This is not a GIT repository: $(pwd)" >&2 exit 1 fi if [ "$(git config remote.origin.url)" != "${UPSTREAM_GIT_URL}" ]; then git remote set-url origin "${UPSTREAM_GIT_URL}" fi git fetch origin -p git checkout -f "${UPSTREAM_GIT_BRANCH}" git reset --hard "origin/${UPSTREAM_GIT_BRANCH}" git clean -fdx else git clone -b "${UPSTREAM_GIT_BRANCH}" "${UPSTREAM_GIT_URL}" "${PROJECT}.git/" cd "${PROJECT}.git" fi git_version=$(git describe --tags HEAD) package_version=$(echo "$git_version" | sed -e 's/^v//' -e 's/-/./g') tarball="${workdir}/${PROJECT}-${package_version}.tar" git archive --format=tar --prefix="${PROJECT}-${package_version}/" -o "${tarball}" HEAD # creating version file for tarball mkdir "${PROJECT}-${package_version}" echo "#define VERSION \"$git_version\"" > "${PROJECT}-${package_version}/"icinga-version.h.force tar --append -f "${tarball}" "${PROJECT}-${package_version}/"* rm -rf "${PROJECT}-${package_version}" # pack tarball gzip -vf9 "${tarball}" sha256sum "${tarball}.gz" # store package version for build scripts echo -e "${package_version}\t$(git rev-parse HEAD)\t$(basename "${tarball}.gz")\t${UPSTREAM_GIT_BRANCH}" > "${workdir}/${PROJECT}.version"