generate-symbols-plist.sh [plain text]
#!/bin/sh
set -o errexit
set -o xtrace
SYMBOLSET_PLIST="${SCRIPT_OUTPUT_FILE_0}"
INFO_PLIST="${SCRIPT_INPUT_FILE_0}"
EXPORTS_LIST="${SCRIPT_INPUT_FILE_1}"
if [ "${SYMBOLSET_PLIST##*.}" != "plist" ]; then
echo "${0}: ${SYMBOLSET_PLIST}: must be a plist" > /dev/stderr
exit 1
fi
if [ "${INFO_PLIST##*.}" != "plist" ]; then
echo "${0}: ${INFO_PLIST}: must be a plist" > /dev/stderr
exit 1
fi
printf \
'<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
' > "${SYMBOLSET_PLIST}"
awk '
/CFBundleIdentifier|OSBundleCompatibleVersion|CFBundleVersion/ {
print; getline; print
}
' ${INFO_PLIST} >> "${SYMBOLSET_PLIST}"
sort -u "${EXPORTS_LIST}" | awk -F: '
BEGIN {
print " <key>Symbols</key>"
print " <array>"
}
$1 ~ /^_/ {
print " <string>"$1"</string>"
next
}
END {
print " </array>"
}
' >> "${SYMBOLSET_PLIST}"
printf \
'</dict>
</plist>
' >> "${SYMBOLSET_PLIST}"