Android test runner: Make android-sync.sh work on Mac
authorjkummerow@chromium.org <jkummerow@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 23 Jul 2012 16:57:22 +0000 (16:57 +0000)
committerjkummerow@chromium.org <jkummerow@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 23 Jul 2012 16:57:22 +0000 (16:57 +0000)
Review URL: https://chromiumcodereview.appspot.com/10806063
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

tools/android-sync.sh

index 6ee1ed4..5d4ef2e 100755 (executable)
@@ -33,7 +33,7 @@
 # The fourth argument is the absolute path to the V8 directory on the device.
 
 if [ ${#@} -lt 4 ] ; then
-  echo "Error: need 4 arguments"
+  echo "$0: Error: need 4 arguments"
   exit 1
 fi
 
@@ -42,11 +42,34 @@ OUTDIR=$2
 HOST_V8=$3
 ANDROID_V8=$4
 
+function LINUX_MD5 {
+  local HASH=$(md5sum $1)
+  echo ${HASH%% *}
+}
+
+function DARWIN_MD5 {
+  local HASH=$(md5 $1)
+  echo ${HASH} | cut -f2 -d "=" | cut -f2 -d " "
+}
+
+host_os=$(uname -s)
+case "${host_os}" in
+  "Linux")
+    MD5=LINUX_MD5
+    ;;
+  "Darwin")
+    MD5=DARWIN_MD5
+    ;;
+  *)
+    echo "$0: Host platform ${host_os} is not supported" >& 2
+    exit 1
+esac
+
 function sync_file {
   local FILE=$1
   local ANDROID_HASH=$(adb shell "md5 \"$ANDROID_V8/$FILE\"")
-  local HOST_HASH=$(md5sum "$HOST_V8/$FILE")
-  if [ "${ANDROID_HASH%% *}" != "${HOST_HASH%% *}" ]; then
+  local HOST_HASH=$($MD5 "$HOST_V8/$FILE")
+  if [ "${ANDROID_HASH%% *}" != "${HOST_HASH}" ]; then
     adb push "$HOST_V8/$FILE" "$ANDROID_V8/$FILE" &> /dev/null
   fi
   echo -n "."