Add a script to auto-generate mapping from exterr category to source file

Reviewed by:	emaste, mkusick
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D54380
This commit is contained in:
Konstantin Belousov
2025-12-28 16:04:28 +02:00
parent 54b52f655e
commit 3ef25acf36
+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh
set -e
check="lib/libc/gen/uexterr_format.c"
target="lib/libc/gen/exterr_cat_filenames.h"
if [ \! -f "${check}" ] ; then
echo "Script must be run from the top of the full source tree"
exit 1
fi
echo "/*" >"${target}"
printf " * Automatically %sgenerated, use\\n" \@ >>"${target}"
echo " * tools/build/make_libc_exterr_cat_filenames.sh" >>"${target}"
echo " */" >>"${target}"
(find sys -type f -name '*.c' | \
xargs grep -E '^#define[[:space:]]+EXTERR_CATEGORY[[:space:]]+EXTERR_CAT_' | \
sed -E 's/[[:space:]]+/:/g' | \
awk -F ':' '{filename = $1; sub(/^sys\//, "", filename);
printf("\t[%s] = \"%s\",\n", $4, filename)}') \
>>"${target}"