summaryrefslogtreecommitdiff
path: root/platform/macos/scripts/create_scheme.sh
diff options
context:
space:
mode:
Diffstat (limited to 'platform/macos/scripts/create_scheme.sh')
-rwxr-xr-xplatform/macos/scripts/create_scheme.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/platform/macos/scripts/create_scheme.sh b/platform/macos/scripts/create_scheme.sh
new file mode 100755
index 0000000000..71f0e0855b
--- /dev/null
+++ b/platform/macos/scripts/create_scheme.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env bash
+
+set -u
+
+CONTAINER=build/macos/mbgl.xcodeproj
+OUTPUT="${CONTAINER}/xcshareddata/xcschemes/${SCHEME_NAME}.xcscheme"
+
+# Required ENV vars:
+# - SCHEME_TYPE: type of the scheme
+# - SCHEME_NAME: name of the scheme
+
+# Optional ENV vars:
+# - NODE_ARGUMENT (defaults to "")
+# - BUILDABLE_NAME (defaults ot SCHEME_NAME)
+# - BLUEPRINT_NAME (defaults ot SCHEME_NAME)
+
+
+# Try to reuse the existing Blueprint ID if the scheme already exists.
+if [ -f "${OUTPUT}" ]; then
+ BLUEPRINT_ID=$(sed -n "s/[ \t]*BlueprintIdentifier *= *\"\([A-Z0-9]\{24\}\)\"/\\1/p" "${OUTPUT}" | head -1)
+fi
+
+NODE_ARGUMENT=${NODE_ARGUMENT:-}
+MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN:-}
+BLUEPRINT_ID=${BLUEPRINT_ID:-$(hexdump -n 12 -v -e '/1 "%02X"' /dev/urandom)}
+BUILDABLE_NAME=${BUILDABLE_NAME:-${SCHEME_NAME}}
+BLUEPRINT_NAME=${BLUEPRINT_NAME:-${SCHEME_NAME}}
+
+mkdir -p "${CONTAINER}/xcshareddata/xcschemes"
+
+sed "\
+s#{{BLUEPRINT_ID}}#${BLUEPRINT_ID}#;\
+s#{{BLUEPRINT_NAME}}#${BLUEPRINT_NAME}#;\
+s#{{BUILDABLE_NAME}}#${BUILDABLE_NAME}#;\
+s#{{CONTAINER}}#${CONTAINER}#;\
+s#{{MAPBOX_ACCESS_TOKEN}}#${MAPBOX_ACCESS_TOKEN}#;\
+s#{{WORKING_DIRECTORY}}#$(pwd)#;\
+s#{{NODE_PATH}}#$(dirname `which node`)#;\
+s#{{NODE_ARGUMENT}}#${NODE_ARGUMENT}#" \
+ platform/macos/scripts/${SCHEME_TYPE}.xcscheme > "${OUTPUT}"