36 lines
870 B
Bash
36 lines
870 B
Bash
|
#!/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
|
||
|
)
|