use sort -c

This commit is contained in:
mrdudz
2025-06-09 22:28:19 +02:00
parent aaa1058d32
commit d1def100dd
3 changed files with 29 additions and 26 deletions

View File

@@ -4,8 +4,9 @@ SCRIPT_PATH=`dirname $0`
CHECK_DIR=../../src
SORT_OPT=-u
SORT_OPT="-u -c"
# $1: filename
function checkarray
{
CHECK_FILE="$1"
@@ -21,32 +22,38 @@ function checkarray
exit -1
fi
LC_COLLATE=C sort $SORT_OPT .a.tmp > .b.tmp
if cmp --silent -- .a.tmp .b.tmp; then
echo ""$1" decls OK"
if `LC_COLLATE=C sort $SORT_OPT .a.tmp`; then
echo ""$1" decls sorted."
else
echo "error: "$1" decls are not sorted."
diff -y .a.tmp .b.tmp
rm -rf .a.tmp .b.tmp
rm -rf .a.tmp
exit -1
fi
START="\\/\\* BEGIN SORTED_CODEOPT.SH \\*\\/"
END="\\/\\* END SORTED_CODEOPT.SH \\*\\/"
awk '/'"$START"'/{flag=1; count++; next} /'"$END"'/{flag=0;} flag {print count,"##",$0}' "$CHECK_FILE" | \
sed -e 's:\(.*##\).*&D\(.*\),.*:\1\2:g' > .a.tmp
if [[ -z $(grep '[^[:space:]]' .a.tmp) ]] ; then
awk '/'"$START"'/{flag=1; count++; next} /'"$END"'/{flag=0;} flag {print count,"##",$0}' "$CHECK_FILE" | \
sed -e 's:\(.*##\).*&D\(.*\),.*:\1\2:g' > .b.tmp
if [[ -z $(grep '[^[:space:]]' .b.tmp) ]] ; then
echo "error: "$1" table is empty"
rm -rf .a.tmp
rm -rf .a.tmp .b.tmp
exit -1
fi
if `LC_COLLATE=C sort $SORT_OPT .b.tmp`; then
echo ""$1" tables sorted."
else
echo "error: "$1" tables are not sorted."
rm -rf .a.tmp .b.tmp
exit -1
fi
if cmp --silent -- .a.tmp .b.tmp; then
echo ""$1" tables OK"
else
echo "error: "$1" tables are not sorted."
echo "error: "$1" tables are different."
diff -y .a.tmp .b.tmp
rm -rf .a.tmp .b.tmp
exit -1