#!/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:=icingaweb2} : ${UPSTREAM_GIT_URL:=https://github.com/Icinga/$PROJECT.git} : ${UPSTREAM_GIT_BRANCH:=master} workdir=`pwd` set -x if [ -z "$UPSTREAM_GIT_NOREPO" ]; then 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 [ -z "$UPSTREAM_GIT_NOUPDATE" ]; then 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}" fi git clean -fdx elif [ -z "$UPSTREAM_GIT_NOUPDATE" ]; then git clone -b "${UPSTREAM_GIT_BRANCH}" "${UPSTREAM_GIT_URL}" "${PROJECT}.git/" cd "${PROJECT}.git" else echo "Missing '${PROJECT}.git' directory!" >&2 exit 1 fi fi git_version=$(git describe --tags "${UPSTREAM_GIT_BRANCH}") 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}" "${UPSTREAM_GIT_BRANCH}" # pack tarball gzip -vf9 "${tarball}" sha256sum "${tarball}.gz" # store package version for build scripts echo -e "${package_version}\t$(git rev-parse "${UPSTREAM_GIT_BRANCH}")\t$(basename "${tarball}.gz")\t${UPSTREAM_GIT_BRANCH}" > "${workdir}/${PROJECT}.version"