PIKApp/tools/generate_changelog.sh

36 lines
870 B
Bash
Raw Normal View History

2023-09-26 00:35:21 +02:00
#!/bin/bash
srcdir="$1"
output="$2"
echo "Creating ${output} based on git log"
gitdir="${srcdir}/.git"
if [[ ! -d "${gitdir}" ]]; then
echo "A git checkout and git-log is required to write changelog in ${output}." \
| tee ${output} >&2
exit 1
fi
CHANGELOG_START=74424325abb54620b370f2595445b2b2a19fe5e7
( \
git log "${CHANGELOG_START}^.." --stat "${srcdir}" | fmt --split-only \
> "${output}.tmp" \
&& [ ${PIPESTATUS[0]} -eq 0 ] \
&& mv "${output}.tmp" "${output}" -f \
&& echo "Appending ChangeLog.pre-git" \
&& cat "${srcdir}/ChangeLog.pre-git" >> "${output}" \
&& exit 0
) \
||\
( \
rm "${output}.tmp" -f \
&& echo "Failed to generate ChangeLog, your ChangeLog may be outdated" >&2 \
&& (test -f "${output}" \
|| echo "git-log is required to generate this file" >> "${output}") \
&& exit 1
)