A few edge-case scenarios were discovered where the WAL file could grow without bound. This change adds an "aggressive" checkpoint operation, along with a new YapDatabaseOptions property to control when this aggressive checkpoint should be executed.
49 lines
1.4 KiB
Bash
Executable File
49 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Get full user name of current user
|
|
# E.g. "Robbie Hanson"
|
|
full1=$(dscl -plist . read /Users/$USER RealName | awk -F '</*string>' '/string>/{print ""$2""}')
|
|
#echo $full1
|
|
|
|
# Convert to lower case
|
|
# E.g. "robbie hanson"
|
|
full2=$(echo $full1 | awk '{print tolower($0)}')
|
|
#echo $full2
|
|
|
|
# Replace spaces with underscores
|
|
# E.g. "robbie_hanson"
|
|
full3=$(echo ${full2// /_})
|
|
#echo $full3
|
|
|
|
# Remove any characters that are illegal in a macro name
|
|
full4=$(echo $full3 | sed 's/[^0-9a-zA-Z_]*//g')
|
|
#echo $full4
|
|
|
|
# If blank, set the name to an anonymous user
|
|
if [ "$full4" == "" ]
|
|
then
|
|
full4='anonymous_user'
|
|
fi
|
|
|
|
# If we output directly to our intended file, even when nothing has changed,
|
|
# then we'll essentially be doing a touch on the file.
|
|
# The compiler will see this, and recompile any files that include the header.
|
|
# This may mean recompiling every single source file, every single time we do a build!
|
|
# So instead we're going to output to a temporary file, and use diff to detect changes.
|
|
|
|
temp_filepath="${SRCROOT}/Logging/LumberjackUser.temp.h"
|
|
final_filepath="${SRCROOT}/Logging/LumberjackUser.h"
|
|
|
|
echo "// This file is automatically generated" > ${temp_filepath}
|
|
echo "#define $full4 1" >> ${temp_filepath}
|
|
|
|
if [ -a ${final_filepath} ]
|
|
then
|
|
DIFF=$(diff ${temp_filepath} ${final_filepath})
|
|
if [ "$DIFF" != "" ]
|
|
then
|
|
cp -f ${temp_filepath} ${final_filepath}
|
|
fi
|
|
else
|
|
cp -f ${temp_filepath} ${final_filepath}
|
|
fi |