1
0
Fork 0
knot-resolver/scripts/update-authors.sh
Daniel Baumann fbc604e215
Adding upstream version 5.7.5.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-21 13:56:17 +02:00

41 lines
1.2 KiB
Bash
Executable file

#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
set -o nounset -o xtrace
function spdx_originator_to_authors {
# $1 = Person/Organization
find -name '*.spdx' | xargs grep --no-filename "^PackageOriginator: $1: " \
| cut -d : -f 3 | sed -e 's/^ *//' -e 's/(/</' -e 's/)/>/' | sort -u
}
cd "$(git rev-parse --show-toplevel)"
AUTHORS_FILE=AUTHORS
TEMP_FILE="$(mktemp AUTHORS.XXXXXXXXXX)"
# drop all names from the current file
sed '/^People who contributed commits to our Git repo are/q' "${AUTHORS_FILE}" > "${TEMP_FILE}"
# append to the new file
git log --no-show-signature --format="%aN <%aE>" | sort -u | git check-mailmap --stdin | sort -u >> "${TEMP_FILE}"
echo '' >> "${TEMP_FILE}"
echo 'Knot Resolver source tree also bundles code and content published by:' >> "${TEMP_FILE}"
spdx_originator_to_authors "Person" >> "${TEMP_FILE}"
spdx_originator_to_authors "Organization" >> "${TEMP_FILE}"
echo '' >> "${TEMP_FILE}"
echo 'Thanks to everyone who knowingly or unknowingly contributed!' >> "${TEMP_FILE}"
# check for changes
diff "${AUTHORS_FILE}" "${TEMP_FILE}"
CHANGED=$?
if [ $CHANGED -ne 0 ]; then
# update
mv "${TEMP_FILE}" "${AUTHORS_FILE}"
fi
# cleanup
rm -f "${TEMP_FILE}"
# signal change with exit code
exit $CHANGED