|  | #!/bin/bash | 
|  | set -e | 
|  |  | 
|  | echo "Current Dir: $(pwd)" | 
|  | if [[ "$OSTYPE" != *"darwin"* ]];then | 
|  | error "Current OS Type is not MacOS" | 
|  | sleep 1 | 
|  | exit 1 | 
|  | fi | 
|  | BIN_NAME=$(basename "$0") | 
|  | help () { | 
|  | echo "Usage: $BIN_NAME <options>" | 
|  | echo | 
|  | echo "Options:" | 
|  | echo "   -t           Team Identifier" | 
|  | echo "   -p           Name of the Provisioning Profile" | 
|  | } | 
|  | bootstrap() { | 
|  | echo "starting" | 
|  | echo "detecting devices..." | 
|  | if ! [ -x "$(command -v ios-deploy)" ]; then | 
|  | echo 'Error: ios-deploy is not installed.' | 
|  | exit 1 | 
|  | fi | 
|  | ios-deploy -c -t 1 | 
|  | if [ "$?" -ne "0" ]; then | 
|  | echo 'Error: No device connected. Please connect your device via USB then re-run the script' | 
|  | exit 1 | 
|  | fi | 
|  | echo "Done." | 
|  | PROJ_ROOT=$(pwd) | 
|  | BENCHMARK_DIR="${PROJ_ROOT}/benchmark" | 
|  | XCODE_PROJ_PATH="./TestApp.xcodeproj" | 
|  | XCODE_TARGET="TestApp" | 
|  | XCODE_BUILD="./build" | 
|  | if [ ! -f "./.config" ]; then | 
|  | touch .config | 
|  | echo "" >> .config | 
|  | else | 
|  | source .config | 
|  | fi | 
|  | if [ -z "${TEAM_ID}" ]; then | 
|  | reply=$(bash -c 'read -r -p "Team Id:" tmp; echo $tmp') | 
|  | TEAM_ID="${reply}" | 
|  | echo "TEAM_ID=${TEAM_ID}" >> .config | 
|  | fi | 
|  | if [ -z "${PROFILE}" ]; then | 
|  | reply=$(bash -c 'read -r -p "Provisioning Profile:" tmp; echo $tmp') | 
|  | PROFILE="${reply}" | 
|  | echo "PROFILE=${PROFILE}" >> .config | 
|  | fi | 
|  | if [ -d "${XCODE_BUILD}" ]; then | 
|  | echo "found the old XCode build, remove it" | 
|  | rm -rf "${XCODE_BUILD}" | 
|  | fi | 
|  | cd "${BENCHMARK_DIR}" | 
|  | echo "Generating model" | 
|  | python trace_model.py | 
|  | ruby setup.rb -t "${TEAM_ID}" | 
|  | cd .. | 
|  | #run xcodebuild | 
|  | if ! [ -x "$(command -v xcodebuild)" ]; then | 
|  | echo 'Error: xcodebuild is not installed.' | 
|  | exit 1 | 
|  | fi | 
|  | echo "Running xcodebuild" | 
|  | xcodebuild clean build  -project ${XCODE_PROJ_PATH}  \ | 
|  | -target ${XCODE_TARGET}  \ | 
|  | -sdk iphoneos \ | 
|  | -configuration Debug \ | 
|  | PROVISIONING_PROFILE_SPECIFIER=${PROFILE} | 
|  | #install TestApp | 
|  | echo "installing..." | 
|  | ios-deploy -r --bundle "${XCODE_BUILD}/Debug-iphoneos/${XCODE_TARGET}.app" | 
|  | echo "Done." | 
|  | } | 
|  | while [[ $# -gt 1 ]] | 
|  | do | 
|  | option="$1" | 
|  | value="$2" | 
|  | case $option in | 
|  | "" | "-h" | "--help") | 
|  | help | 
|  | exit 0 | 
|  | ;; | 
|  | "-t" | "--team") | 
|  | TEAM_ID="${value}" | 
|  | shift | 
|  | ;; | 
|  | "-p"|"--profile") | 
|  | PROFILE="${value}" | 
|  | shift | 
|  | ;; | 
|  | *) | 
|  | echo "unknown options" >& 2 | 
|  | help | 
|  | exit 1 | 
|  | ;; | 
|  | esac | 
|  | shift | 
|  | done | 
|  |  | 
|  | bootstrap |