diff options
Diffstat (limited to 'platform/macos/scripts/create_scheme.sh')
-rwxr-xr-x | platform/macos/scripts/create_scheme.sh | 40 |
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}" |