diff --git a/.gitmodules b/.gitmodules index 0b9bf398..38e1a97e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,6 +16,6 @@ [submodule "External/jrswizzle"] path = External/jrswizzle url = git://github.com/jonmarimba/jrswizzle.git -[submodule "Site/2013-05/mpw-js/js/mpw-js"] - path = Site/2013-05/mpw-js/js/mpw-js +[submodule "Site/mpw-js/js/mpw-js"] + path = Site/mpw-js/js/mpw-js url = https://github.com/Lyndir/mpw-js.git diff --git a/Scripts/updatePlist b/Scripts/updatePlist new file mode 100755 index 00000000..a42f7e3d --- /dev/null +++ b/Scripts/updatePlist @@ -0,0 +1,62 @@ +#!/usr/bin/env bash +cd "${BASH_SOURCE%/*}" +source bashlib +set -e +cd .. +export PATH+=:/usr/libexec + +addPlistWithKey() { + local key=$1 type=$2 value=$3 plist=${4:-"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"} + + PlistBuddy -c "Delete :'$key'" "$plist" 2>/dev/null || true + PlistBuddy -c "Add :'$key' '$type' '$value'" "$plist" +} +setPlistWithKey() { + local key=$1 value=$2 plist=${3:-"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"} + + PlistBuddy -c "Set :'$key' '$value'" "$plist" +} +getPlistWithKey() { + local key=$1 plist=${2:-"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"} + + PlistBuddy -c "Print :'$key'" "$plist" +} +setSettingWithTitle() { + local i title=$1 value=$2 plist=${3:-"$BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/Settings.bundle/Root.plist"} + + for (( i=0; 1; ++i )); do + PlistBuddy -c "Print :PreferenceSpecifiers:$i" "$plist" &>/dev/null || break + inf "Checking preference specifier $i" + + [[ $(PlistBuddy -c "Print :PreferenceSpecifiers:$i:Title" "$plist" 2>/dev/null) = $title ]] || continue + + inf "Correct title, setting value." + PlistBuddy -c "Set :PreferenceSpecifiers:$i:DefaultValue $value" "$plist" + break + done +} + +description=$(git describe --always --dirty --long --match '*-release') +version=${description%-g*} +major=${version%%-*} minor=${version##*-} +printf -v version '%s.%02d' "$major" "$minor" +printf -v commit '%09d' "$((16#${description##*-g}))" + +addPlistWithKey GITDescription string "$description" +setPlistWithKey CFBundleVersion "${version//.}$commit" # No separator between version and commit because I had already submitted a CFBundleVersion with a really high major. Cry. +setPlistWithKey CFBundleShortVersionString "$version" + +setSettingWithTitle "Build" "$commit" +setSettingWithTitle "Version" "$version" +setSettingWithTitle "Copyright" "$(getPlistWithKey NSHumanReadableCopyright)" + +if [[ $DEPLOYMENT_LOCATION = YES ]]; then + # This build is a release. Do some release checks. + passed=1 + [[ $description != *-dirty ]] || \ + { passed=0; err 'ERROR: Cannot release a dirty version, first commit any changes.'; } + [[ $(PlistBuddy -c "Print :'API Key'" "$BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/Crashlytics.plist") ]] || \ + { passed=0; err 'ERROR: Cannot release: Crashlytics API key is missing.'; } + (( passed )) || \ + { ftl "Failed to pass release checks. Fix the above errors and re-try. Aborting."; exit 1; } +fi diff --git a/Site/2013-05/index.html b/Site/2013-05/index.html index 8e8c3ad8..894f6fd5 100644 --- a/Site/2013-05/index.html +++ b/Site/2013-05/index.html @@ -84,7 +84,7 @@ Terminal (Java / Native C) | Android (Beta) | - Web (Beta) + Web (Beta) diff --git a/Site/2013-05/mpw-js/js/mpw-js b/Site/2013-05/mpw-js/js/mpw-js deleted file mode 160000 index 08ada42c..00000000 --- a/Site/2013-05/mpw-js/js/mpw-js +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 08ada42cbb033b2c094cef0c015a20d8c7467bc1 diff --git a/Site/2013-05/mpw-js/css/main.css b/Site/mpw-js/css/main.css similarity index 100% rename from Site/2013-05/mpw-js/css/main.css rename to Site/mpw-js/css/main.css diff --git a/Site/2013-05/mpw-js/img/spinner.svg b/Site/mpw-js/img/spinner.svg similarity index 100% rename from Site/2013-05/mpw-js/img/spinner.svg rename to Site/mpw-js/img/spinner.svg diff --git a/Site/2013-05/mpw-js/index.html b/Site/mpw-js/index.html similarity index 100% rename from Site/2013-05/mpw-js/index.html rename to Site/mpw-js/index.html diff --git a/Site/2013-05/mpw-js/js/dependencies.js b/Site/mpw-js/js/dependencies.js similarity index 100% rename from Site/2013-05/mpw-js/js/dependencies.js rename to Site/mpw-js/js/dependencies.js diff --git a/Site/2013-05/mpw-js/js/encoding-polyfill.js b/Site/mpw-js/js/encoding-polyfill.js similarity index 100% rename from Site/2013-05/mpw-js/js/encoding-polyfill.js rename to Site/mpw-js/js/encoding-polyfill.js diff --git a/Site/2013-05/mpw-js/js/main.js b/Site/mpw-js/js/main.js similarity index 100% rename from Site/2013-05/mpw-js/js/main.js rename to Site/mpw-js/js/main.js diff --git a/Site/mpw-js/js/mpw-js b/Site/mpw-js/js/mpw-js new file mode 160000 index 00000000..768cfad3 --- /dev/null +++ b/Site/mpw-js/js/mpw-js @@ -0,0 +1 @@ +Subproject commit 768cfad320668f480e2e44f7bf85c1f0de1b4059 diff --git a/Site/2013-05/mpw-js/js/promise-polyfill.js b/Site/mpw-js/js/promise-polyfill.js similarity index 100% rename from Site/2013-05/mpw-js/js/promise-polyfill.js rename to Site/mpw-js/js/promise-polyfill.js diff --git a/Site/2013-05/mpw-js/js/typedarray-polyfill.js b/Site/mpw-js/js/typedarray-polyfill.js similarity index 100% rename from Site/2013-05/mpw-js/js/typedarray-polyfill.js rename to Site/mpw-js/js/typedarray-polyfill.js diff --git a/Site/2013-05/mpw-js/js/vendor/jquery-2.1.1.js b/Site/mpw-js/js/vendor/jquery-2.1.1.js similarity index 100% rename from Site/2013-05/mpw-js/js/vendor/jquery-2.1.1.js rename to Site/mpw-js/js/vendor/jquery-2.1.1.js diff --git a/Site/2013-05/mpw-js/js/vendor/jquery-2.1.1.min.js b/Site/mpw-js/js/vendor/jquery-2.1.1.min.js similarity index 100% rename from Site/2013-05/mpw-js/js/vendor/jquery-2.1.1.min.js rename to Site/mpw-js/js/vendor/jquery-2.1.1.min.js diff --git a/Site/2013-05/mpw-js/js/vendor/jquery-2.1.1.min.map b/Site/mpw-js/js/vendor/jquery-2.1.1.min.map similarity index 100% rename from Site/2013-05/mpw-js/js/vendor/jquery-2.1.1.min.map rename to Site/mpw-js/js/vendor/jquery-2.1.1.min.map