You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/cmake/dbschema-version-postproces...

50 lines
1.7 KiB

#!/usr/bin/env sh
# This script is executed by CMake after db_text schema files are generated.
# It appends the last line of each generated file (except 'version')
# to the 'version' file and truncates each generated file to the n line.
# Get the number of lines to move to version file from the first argument
# Get the nubmer of lines to keep in the file from the second argument
TAIL_NUMBER="$1"
HEAD_NUMBER="$2"
# echo " Tail number: $TAIL_NUMBER"
# echo " Head number: $HEAD_NUMBER"
# Loop through files, sorted alphabetically
for FILE in $(ls * | sort); do
# Check if it's a regular file and not the version file
if [ -f "$FILE" ] && [ "$FILE" != "version" ]; then
# echo " Processing: $FILE"
# Check if file has at least 1 line before tail
if [ -s "$FILE" ]; then # -s checks if file is not empty
# Append the last line to the version file
# Using "printf" to ensure a newline is added after the tail output
tail -n "$TAIL_NUMBER" "$FILE" >> version
if [ $? -ne 0 ]; then # Check tail command result
echo "Warning: tail command failed for $FILE"
fi
# Get the first line and overwrite the original file
head -n "$HEAD_NUMBER" "$FILE" > "$$FILE".tmp
if [ $? -ne 0 ]; then
echo "Warning: head command failed for $FILE"
else
mv "$$FILE".tmp "$FILE"
if [ $? -ne 0 ]; then
echo "Warning: mv command failed for $FILE"
fi
fi
else
echo "Warning: File $FILE is empty, skipping processing."
fi
fi
done
echo "Finished processing schema files in $PWD"
exit 0 # Indicate success