| #!/bin/bash |
| ############################################################################### |
| # Copyright 2015 Google Inc. |
| # |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| ############################################################################### |
| # |
| # ios_setup.sh: Sets environment variables used by other iOS scripts. |
| |
| # File system location where we mount the ios devices. |
| if [[ -z "${IOS_MOUNT_POINT}" ]]; then |
| IOS_MOUNT_POINT="/tmp/mnt_iosdevice" |
| fi |
| |
| # Location on the ios device where all data are stored. This is |
| # relative to the mount point. |
| IOS_DOCS_DIR="Documents" |
| |
| # Directory with the Skia source. |
| SKIA_SRC_DIR=$(cd "${SCRIPT_DIR}/../../.."; pwd) |
| |
| # Provisioning profile - this needs to be set up on the local machine. |
| PROVISIONING_PROFILE="" |
| |
| # Code Signing identity - this needs to be set up on the local machine. |
| CODE_SIGN_IDENTITY="iPhone Developer" |
| |
| IOS_RESULTS_DIR="results" |
| |
| # Location of XCode build products. |
| if [[ -z "$XCODEBUILD" ]]; then |
| XCODEBUILD="${SKIA_SRC_DIR}/xcodebuild" |
| fi |
| |
| ios_rm() { |
| local TARGET="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1" |
| |
| ios_mount |
| rm -rf "$TARGET" |
| ios_umount |
| } |
| |
| ios_mkdir() { |
| local TARGET="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1" |
| ios_mount |
| mkdir -p "$TARGET" |
| ios_umount |
| } |
| |
| ios_cat() { |
| local TARGET="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1" |
| >&2 echo "target: '${TARGET}''" |
| ios_mount |
| RET="$( cat ${TARGET} )" |
| ios_umount |
| >&2 echo "Result: '${RET}'" |
| echo -e "${RET}" |
| } |
| |
| # ios_mount: mounts the iOS device for reading or writing. |
| ios_mount() { |
| # If this is already mounted we unmount it. |
| if $(mount | grep --quiet "$IOS_MOUNT_POINT"); then |
| >&2 echo "Device already mounted at: $IOS_MOUNT_POINT - Unmounting." |
| ios_umount || true |
| fi |
| |
| # Ensure there is a mount directory. |
| if [[ ! -d "$IOS_MOUNT_POINT" ]]; then |
| mkdir -p $IOS_MOUNT_POINT |
| fi |
| ifuse --container $IOS_BUNDLE_ID $IOS_MOUNT_POINT |
| |
| sleep 2 |
| if [[ ! -d "${IOS_MOUNT_POINT}/${IOS_DOCS_DIR}" ]]; then |
| exit 1 |
| fi |
| >&2 echo "Successfully mounted device." |
| #find $IOS_MOUNT_POINT |
| } |
| |
| # ios_umount: unmounts the ios device. |
| ios_umount() { |
| sudo umount $IOS_MOUNT_POINT |
| sleep 1 |
| } |
| |
| # ios_restart: restarts the iOS device. |
| ios_restart() { |
| ios_umount || true |
| idevicediagnostics restart |
| } |
| |
| # ios_pull(ios_src, host_dst): Copies the content of ios_src to host_dst. |
| # The path is relative to the 'Documents' folder on the device. |
| ios_pull() { |
| # read input params |
| local IOS_SRC="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1" |
| local HOST_DST="$2" |
| |
| ios_mount |
| if [[ -d "${HOST_DST}" ]]; then |
| cp -r "$IOS_SRC/." "$HOST_DST" |
| else |
| cp -r "$IOS_SRC" "$HOST_DST" |
| fi |
| ios_umount |
| } |
| |
| # ios_push(host_src, ios_dst) |
| ios_push() { |
| # read input params |
| local HOST_SRC="$1" |
| local IOS_DST="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$2" |
| |
| ios_mount |
| rm -rf $IOS_DST |
| mkdir -p "$(dirname $IOS_DST)" |
| cp -r -L "$HOST_SRC" "$IOS_DST" |
| ios_umount |
| } |
| |
| ios_path_exists() { |
| local TARGET_PATH="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1" |
| local RET=1 |
| ios_mount |
| if [[ -e $TARGET_PATH ]]; then |
| RET=0 |
| fi |
| ios_umount |
| return $RET |
| } |
| |
| # ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST` |
| # HOST_LS=`ls -ld $HOST_SRC` |
| # if [ "${ANDROID_LS:0:1}" == "d" -a "${HOST_LS:0:1}" == "-" ]; |
| # then |
| # ANDROID_DST="${ANDROID_DST}/$(basename ${HOST_SRC})" |
| # fi |
| |
| |
| # ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST` |
| # if [ "${ANDROID_LS:0:1}" == "-" ]; then |
| # #get the MD5 for dst and src |
| # ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_DST` |
| # if [ $(uname) == "Darwin" ]; then |
| # HOST_MD5=`md5 -q $HOST_SRC` |
| # else |
| # HOST_MD5=`md5sum $HOST_SRC` |
| # fi |
| |
| # if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; then |
| # echo -n "$ANDROID_DST " |
| # $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST |
| # fi |
| # elif [ "${ANDROID_LS:0:1}" == "d" ]; then |
| # for FILE_ITEM in `ls $HOST_SRC`; do |
| # adb_push_if_needed "${HOST_SRC}/${FILE_ITEM}" "${ANDROID_DST}/${FILE_ITEM}" |
| # done |
| # else |
| # HOST_LS=`ls -ld $HOST_SRC` |
| # if [ "${HOST_LS:0:1}" == "d" ]; then |
| # $ADB $DEVICE_SERIAL shell mkdir -p $ANDROID_DST |
| # adb_push_if_needed $HOST_SRC $ANDROID_DST |
| # else |
| # echo -n "$ANDROID_DST " |
| # $ADB $DEVICE_SERIAL shell mkdir -p "$(dirname "$ANDROID_DST")" |
| # $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST |
| # fi |
| # fi |
| # } |
| |
| # setup_device "${DEVICE_ID}" |