Index: tools/android-sync.sh |
diff --git a/tools/bash-completion.sh b/tools/android-sync.sh |
similarity index 51% |
copy from tools/bash-completion.sh |
copy to tools/android-sync.sh |
index 9f65c677317536ae284b29f362e6aa5fce4b88fd..520fa704047130b254067cec090892044653b3a9 100755 |
--- a/tools/bash-completion.sh |
+++ b/tools/android-sync.sh |
@@ -26,30 +26,61 @@ |
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-# Inspired by and based on: |
-# http://src.chromium.org/viewvc/chrome/trunk/src/tools/bash-completion |
+# This script pushes android binaries and test data to the device. |
+# The first argument can be either "android.release" or "android.debug". |
+# The second argument is a relative path to the output directory with binaries. |
+# The third argument is the absolute path to the V8 directory on the host. |
+# The fourth argument is the absolute path to the V8 directory on the device. |
-# Flag completion rule for bash. |
-# To load in your shell, "source path/to/this/file". |
+ARCH_MODE=$1 |
+OUTDIR=$2 |
+HOST_V8=$3 |
+ANDROID_V8=$4 |
Jakob Kummerow
2012/07/02 14:25:58
How about a check that all arguments are present,
ulan
2012/07/02 16:18:23
Done.
|
-v8_source=$(readlink -f $(dirname $BASH_SOURCE)/..) |
+function sync_file { |
+ local FILE=$1 |
+ local ANDROID_HASH=`adb shell "md5 $ANDROID_V8/$FILE"` |
Jakob Kummerow
2012/07/02 14:25:58
Please use $(...) instead of `...`
ulan
2012/07/02 16:18:23
Done.
|
+ local HOST_HASH=`md5sum $HOST_V8/$FILE` |
Jakob Kummerow
2012/07/02 14:25:58
again $(...)
And if you don't want this to fail h
ulan
2012/07/02 16:18:23
Done.
|
+ if [ "${ANDROID_HASH%% *}" != "${HOST_HASH%% *}" ] |
+ then |
Jakob Kummerow
2012/07/02 14:25:58
nit: you can put the "then" on the "if"'s line (li
ulan
2012/07/02 16:18:23
Done.
|
+ adb push $HOST_V8/$FILE $ANDROID_V8/$FILE &> /dev/null |
+ fi |
+} |
-_v8_flag() { |
- local cur defines targets |
- cur="${COMP_WORDS[COMP_CWORD]}" |
- defines=$(cat src/flag-definitions.h \ |
- | grep "^DEFINE" \ |
- | grep -v "DEFINE_implication" \ |
- | sed -e 's/_/-/g') |
- targets=$(echo "$defines" \ |
- | sed -ne 's/^DEFINE-[^(]*(\([^,]*\).*/--\1/p'; \ |
- echo "$defines" \ |
- | sed -ne 's/^DEFINE-bool(\([^,]*\).*/--no\1/p'; \ |
- cat src/d8.cc \ |
- | grep "strcmp(argv\[i\]" \ |
- | sed -ne 's/^[^"]*"--\([^"]*\)".*/--\1/p') |
- COMPREPLY=($(compgen -W "$targets" -- "$cur")) |
- return 0 |
+function sync_dir { |
+ local DIR=$1 |
+ echo -n "sync to $ANDROID_V8/$DIR" |
+ for FILE in `find $HOST_V8/$DIR -type f` |
Jakob Kummerow
2012/07/02 14:25:58
again $(...)
ulan
2012/07/02 16:18:23
Done.
|
+ do |
Jakob Kummerow
2012/07/02 14:25:58
nit: again, for consistency with '{', I suggest re
ulan
2012/07/02 16:18:23
Done.
|
+ local RELATIVE_FILE=${FILE:${#HOST_V8}} |
+ sync_file $RELATIVE_FILE |
+ echo -n "." |
Jakob Kummerow
2012/07/02 14:25:58
How about moving this line into sync_file and remo
ulan
2012/07/02 16:18:23
Done.
|
+ done |
+ echo "" |
} |
-complete -F _v8_flag -f d8 |
+echo -n "sync to $ANDROID_V8/$OUTDIR/$ARCH_MODE" |
+sync_file $OUTDIR/$ARCH_MODE/cctest |
+echo -n "." |
+sync_file $OUTDIR/$ARCH_MODE/d8 |
+echo -n "." |
+sync_file $OUTDIR/$ARCH_MODE/preparser |
+echo -n "." |
+sync_file $OUTDIR/$ARCH_MODE/process |
Jakob Kummerow
2012/07/02 14:25:58
I don't think the "process" binary is required for
ulan
2012/07/02 16:18:23
Done.
|
+echo -n "." |
+sync_file $OUTDIR/$ARCH_MODE/shell |
Jakob Kummerow
2012/07/02 14:25:58
"shell" is not required.
ulan
2012/07/02 16:18:23
Done.
|
+echo "." |
+echo -n "sync to $ANDROID_V8/tools" |
+sync_file tools/consarray.js |
+echo -n "." |
+sync_file tools/codemap.js |
+echo -n "." |
+sync_file tools/csvparser.js |
+echo -n "." |
+sync_file tools/profile.js |
+echo -n "." |
+sync_file tools/splaytree.js |
+echo "." |
+sync_dir test/mjsunit |
+sync_dir test/preparser |
+sync_dir test/stress |
Jakob Kummerow
2012/07/02 14:25:58
I don't think test/stress is part of a regular V8
ulan
2012/07/02 16:18:23
Done.
|