blob: 81eec16cb2a65c575501b7fe438ebad132339610 [file] [log] [blame]
#!/bin/bash
# Get full user name of current user
# E.g. "Robbie Hanson"
full1=$(osascript -e "tell application \"System Events\"" -e "get the full name of the current user" -e "end tell")
#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}/PerUserLogLevels/LumberjackUser.temp.h"
final_filepath="${SRCROOT}/PerUserLogLevels/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