1
0
Fork 0
Nextcloud-Desktop/admin/linux/debian/scripts/create_debdir.sh

90 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
set -e -u
scriptdir=`dirname $0`
scriptdir=`cd "${scriptdir}" && pwd`
. "${scriptdir}/config.sh"
package="nextcloud-client"
tag="${1}"
version="${2}"
distribution="${3}"
gitdir="${GITROOTS}/client"
packagedir="${BUILDAREA}/${package}_${version}"
origtarname="${package}_${version}.orig.tar.bz2"
origtar="${BUILDAREA}/${origtarname}"
archive_submodules()
{
local subdir="${1}"
local treeish="${2}"
local dir="${gitdir}"
local destdir="${packagedir}"
if test "${subdir}"; then
echo " copying submodule ${subdir}"
dir="${dir}/${subdir}"
destdir="${destdir}/${subdir}"
fi
mkdir -p "${destdir}"
(cd "${dir}"; git archive "${treeish}" | tar xf - -C "${destdir}")
(cd "${dir}"; git ls-tree "${treeish}" -r) | while read mode type object file; do
if test "${type}" = "commit"; then
sdir="${file}"
if test "${subdir}"; then
sdir="${subdir}/${sdir}"
fi
archive_submodules "${sdir}" "${object}"
fi
done
}
rm -rf "${packagedir}"
mkdir -p "${packagedir}"
echo "Updating submodules"
commit=`cd "${gitdir}"; git rev-parse HEAD`
(cd "${gitdir}"; git checkout "${tag}"; git submodule update --recursive --init)
echo "Copying sources"
archive_submodules "" "${tag}"
if test -f "${GITROOTS}/${origtarname}"; then
echo "Copying orig archive from ${GITROOTS}"
cp -a "${GITROOTS}/${origtarname}" "${BUILDAREA}"
else
echo "Creating orig archive"
tar cjf "${origtar}" -C "${BUILDAREA}" "${package}_${version}"
fi
echo "Restoring Git state"
(cd "${gitdir}"; git checkout "${commit}")
cd "${scriptdir}"
echo "Copying Debian files"
mkdir -p "${packagedir}/debian"
tar cf - -C "${scriptdir}/../debian" . | tar xf - -C "${packagedir}/debian"
if test -d "${scriptdir}/../debian.${distribution}"; then
tar cf - -C "${scriptdir}/../debian.${distribution}" . | tar xf - -C "${packagedir}/debian"
fi
pushd "${packagedir}"
for p in debian/post-patches/*.patch; do
if test -f "${p}"; then
echo "Applying ${p}"
patch -p1 < "${p}"
fi
done
popd
"${scriptdir}/git2changelog.py" /tmp/git2changelog "${distribution}"
mv "${packagedir}/debian/changelog" "${packagedir}/debian/changelog.old"
cat /tmp/git2changelog "${packagedir}/debian/changelog.old" > "${packagedir}/debian/changelog"