41 lines
1.2 KiB
Bash
Executable File
41 lines
1.2 KiB
Bash
Executable File
#!/bin/bash -e
|
|
# shellcheck disable=SC2154,SC2207,SC2016,SC2086,SC2250,SC2312,SC2162
|
|
|
|
TOPDIR=$(pwd)
|
|
|
|
changelog=${TOPDIR}/changelog-${device}-${version}.md
|
|
|
|
declare -A before
|
|
if [[ -f gitstate-${device}-${version}.txt ]]
|
|
then
|
|
read -a tmp < gitstate-${device}-${version}.txt
|
|
else
|
|
tmp=($(repo forall -c 'echo "${REPO_PATH}:$(git rev-parse --short HEAD)"'))
|
|
fi
|
|
for i in "${tmp[@]}"; do
|
|
IFS=: read -r folder commit <<<"${i}"
|
|
before[${folder}]=${commit}
|
|
done
|
|
|
|
echo -e "# Build $(date '+%Y-%m-%d %H:%M:%S %Z')\n" >>"${changelog}"
|
|
|
|
tmp=($(repo forall -c 'echo "${REPO_PATH}:$(git rev-parse --short HEAD)"'))
|
|
|
|
for i in "${tmp[@]}"; do
|
|
IFS=: read -r folder commit <<<"${i}"
|
|
if [[ "${folder}" != lineage/* && "${before[${folder}]}" != "${commit}" ]]; then
|
|
cd "${folder}" || continue
|
|
log=$(git --no-pager log --pretty=format:"- %s" "${before[${folder}]}".."${commit}" | grep -v XXXHIDEXXX)
|
|
if [[ $(echo -n "$log" | wc -c) != 0 ]]; then
|
|
{
|
|
echo "## ${folder} ${before[${folder}]}..${commit}"
|
|
echo "$log"
|
|
echo
|
|
} >>"${changelog}"
|
|
fi
|
|
cd "${TOPDIR}" || continue
|
|
fi
|
|
done
|
|
cat "${changelog}"
|
|
|
|
echo "${tmp[@]}" > gitstate-${device}-${version}.txt |