Skip to content

Instantly share code, notes, and snippets.

@danielctull
Created April 24, 2015 10:05
Show Gist options
  • Save danielctull/d9e9447d1421f8e72929 to your computer and use it in GitHub Desktop.
Save danielctull/d9e9447d1421f8e72929 to your computer and use it in GitHub Desktop.
cd "$PROJECT_DIR"
infoPlist="${SRCROOT}/${INFOPLIST_FILE}"
infoPath="${infoPlist%.*}"
infoName=$(basename "${infoPath}")
infoHeader="${infoPath}.h"
infoImplementation="${infoPath}.m"
infoHeaderImport=$(basename "${infoHeader}")
rm -f "$infoHeader"
rm -f "$infoImplementation"
touch "$infoHeader"
touch "$infoImplementation"
displayName=$(/usr/libexec/PlistBuddy -c "Print :CFBundleDisplayName" "$infoPlist")
bundleIdentifier=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "$infoPlist")
bundleShortVersionString=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "$infoPlist")
bundleVersion=`git log --oneline | wc -l | tr -d ' '`
echo "#define BUNDLE_VERSION $bundleVersion" >> "$infoHeader"
echo "" >> "$infoHeader"
echo "#ifdef __OBJC__" >> "$infoHeader"
echo "@import Foundation;" >> "$infoHeader"
echo "" >> "$infoHeader"
echo "extern const struct $infoName {" >> "$infoHeader"
echo " __unsafe_unretained NSString *displayName;" >> "$infoHeader"
echo " __unsafe_unretained NSString *bundleIdentifier;" >> "$infoHeader"
echo " __unsafe_unretained NSString *bundleVersion;" >> "$infoHeader"
echo " __unsafe_unretained NSString *bundleShortVersionString;" >> "$infoHeader"
echo "} $infoName;" >> "$infoHeader"
echo "#endif" >> "$infoHeader"
echo "#import \"${infoHeaderImport}\"" >> "$infoImplementation"
echo "" >> "$infoImplementation"
echo "const struct $infoName $infoName = {" >> "$infoImplementation"
echo " .displayName = @\"$displayName\"," >> "$infoImplementation"
echo " .bundleIdentifier = @\"$bundleIdentifier\"," >> "$infoImplementation"
echo " .bundleVersion = @\"$bundleVersion\"," >> "$infoImplementation"
echo " .bundleShortVersionString = @\"$bundleShortVersionString\"" >> "$infoImplementation"
echo "};" >> "$infoImplementation"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment