Home | History | Annotate | Download | only in bin
      1 #!/bin/bash
      2 ###############################################################################
      3 # Copyright 2015 Google Inc.
      4 #
      5 # Use of this source code is governed by a BSD-style license that can be
      6 # found in the LICENSE file.
      7 ###############################################################################
      8 #
      9 # ios_setup.sh: Sets environment variables used by other iOS scripts.
     10 
     11 # File system location where we mount the ios devices.
     12 if [[ -z "${IOS_MOUNT_POINT}" ]]; then
     13   IOS_MOUNT_POINT="/tmp/mnt_iosdevice"
     14 fi
     15 
     16 # Location on the ios device where all data are stored. This is
     17 # relative to the mount point.
     18 IOS_DOCS_DIR="Documents"
     19 
     20 # Directory with the Skia source.
     21 SKIA_SRC_DIR=$(cd "${SCRIPT_DIR}/../../.."; pwd)
     22 
     23 # Provisioning profile - this needs to be set up on the local machine.
     24 PROVISIONING_PROFILE=""
     25 
     26 # Code Signing identity - this needs to be set up on the local machine.
     27 CODE_SIGN_IDENTITY="iPhone Developer"
     28 
     29 IOS_RESULTS_DIR="results"
     30 
     31 # BUILDTYPE is 'Debug' by default.
     32 if [[ -z "$BUILDTYPE" ]]; then
     33   BUILDTYPE="Debug"
     34 fi
     35 
     36 # Out dir is $SKIA_SRC_DIR/out by default.
     37 if [[ -z "$SKIA_OUT" ]]; then
     38   SKIA_OUT="$SKIA_SRC_DIR/out"
     39 fi
     40 
     41 # Location of XCode build products.
     42 if [[ -z "$XCODEBUILD" ]]; then
     43   XCODEBUILD="${SKIA_SRC_DIR}/xcodebuild"
     44 fi
     45 
     46 ios_rm() {
     47   local TARGET="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1"
     48 
     49   ios_mount
     50   rm -rf "$TARGET"
     51   ios_umount
     52 }
     53 
     54 ios_mkdir() {
     55   local TARGET="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1"
     56   ios_mount
     57   mkdir -p "$TARGET"
     58   ios_umount
     59 }
     60 
     61 ios_cat() {
     62   local TARGET="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1"
     63   >&2 echo "target: '${TARGET}''"
     64   ios_mount
     65   RET="$( cat ${TARGET} )"
     66   ios_umount
     67   >&2 echo "Result: '${RET}'"
     68   echo -e "${RET}"
     69 }
     70 
     71 # ios_mount: mounts the iOS device for reading or writing.
     72 ios_mount() {
     73   # If this is already mounted we unmount it.
     74   if $(mount | grep --quiet "$IOS_MOUNT_POINT"); then
     75     >&2 echo "Device already mounted at: $IOS_MOUNT_POINT - Unmounting."
     76     ios_umount || true
     77   fi
     78 
     79   # Ensure there is a mount directory.
     80   if [[ ! -d "$IOS_MOUNT_POINT" ]]; then
     81     mkdir -p $IOS_MOUNT_POINT
     82   fi
     83   ifuse --container $IOS_BUNDLE_ID $IOS_MOUNT_POINT
     84 
     85   sleep 2
     86   if [[ ! -d "${IOS_MOUNT_POINT}/${IOS_DOCS_DIR}" ]]; then
     87     exit 1
     88   fi
     89   >&2 echo "Successfully mounted device."
     90   #find $IOS_MOUNT_POINT
     91 }
     92 
     93 # ios_umount: unmounts the ios device.
     94 ios_umount() {
     95   sudo umount $IOS_MOUNT_POINT
     96   sleep 1
     97 }
     98 
     99 # ios_restart: restarts the iOS device.
    100 ios_restart() {
    101   ios_umount || true
    102   idevicediagnostics restart
    103 }
    104 
    105 # ios_pull(ios_src, host_dst): Copies the content of ios_src to host_dst.
    106 # The path is relative to the 'Documents' folder on the device.
    107 ios_pull() {
    108   # read input params
    109   local IOS_SRC="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1"
    110   local HOST_DST="$2"
    111 
    112   ios_mount
    113   if [[ -d "${HOST_DST}" ]]; then
    114     cp -r "$IOS_SRC/." "$HOST_DST"
    115   else
    116     cp -r "$IOS_SRC" "$HOST_DST"
    117   fi
    118   ios_umount
    119 }
    120 
    121 # ios_push(host_src, ios_dst)
    122 ios_push() {
    123   # read input params
    124   local HOST_SRC="$1"
    125   local IOS_DST="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$2"
    126 
    127   ios_mount
    128   rm -rf $IOS_DST
    129   mkdir -p "$(dirname $IOS_DST)"
    130   cp -r -L "$HOST_SRC" "$IOS_DST"
    131   ios_umount
    132 }
    133 
    134 ios_path_exists() {
    135   local TARGET_PATH="$IOS_MOUNT_POINT/$IOS_DOCS_DIR/$1"
    136   local RET=1
    137   ios_mount
    138   if [[ -e $TARGET_PATH ]]; then
    139     RET=0
    140   fi
    141   ios_umount
    142   return $RET
    143 }
    144 
    145 #   ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST`
    146 #   HOST_LS=`ls -ld $HOST_SRC`
    147 #   if [ "${ANDROID_LS:0:1}" == "d" -a "${HOST_LS:0:1}" == "-" ];
    148 #   then
    149 #     ANDROID_DST="${ANDROID_DST}/$(basename ${HOST_SRC})"
    150 #   fi
    151 
    152 
    153 #   ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST`
    154 #   if [ "${ANDROID_LS:0:1}" == "-" ]; then
    155 #     #get the MD5 for dst and src
    156 #     ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_DST`
    157 #     if [ $(uname) == "Darwin" ]; then
    158 #       HOST_MD5=`md5 -q $HOST_SRC`
    159 #     else
    160 #       HOST_MD5=`md5sum $HOST_SRC`
    161 #     fi
    162 
    163 #     if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; then
    164 #       echo -n "$ANDROID_DST "
    165 #       $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST
    166 #     fi
    167 #   elif [ "${ANDROID_LS:0:1}" == "d" ]; then
    168 #     for FILE_ITEM in `ls $HOST_SRC`; do
    169 #       adb_push_if_needed "${HOST_SRC}/${FILE_ITEM}" "${ANDROID_DST}/${FILE_ITEM}"
    170 #     done
    171 #   else
    172 #     HOST_LS=`ls -ld $HOST_SRC`
    173 #     if [ "${HOST_LS:0:1}" == "d" ]; then
    174 #       $ADB $DEVICE_SERIAL shell mkdir -p $ANDROID_DST
    175 #       adb_push_if_needed $HOST_SRC $ANDROID_DST
    176 #     else
    177 #       echo -n "$ANDROID_DST "
    178 #       $ADB $DEVICE_SERIAL shell mkdir -p "$(dirname "$ANDROID_DST")"
    179 #       $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST
    180 #     fi
    181 #   fi
    182 # }
    183 
    184 # setup_device "${DEVICE_ID}"
    185