diff options
Diffstat (limited to 'scripts/combine_sdks.sh')
-rwxr-xr-x | scripts/combine_sdks.sh | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/scripts/combine_sdks.sh b/scripts/combine_sdks.sh new file mode 100755 index 0000000..ebaa1c6 --- /dev/null +++ b/scripts/combine_sdks.sh @@ -0,0 +1,105 @@ +#!/bin/bash + +function replace() +{ + echo replacing $1 + rm $V -rf "$UNZIPPED_BASE_DIR"/$1 + cp $V -rf "$UNZIPPED_IMAGE_DIR"/$1 "$UNZIPPED_BASE_DIR"/$1 +} + +V="" +Q="-q" +if [ "$1" == "-v" ]; then + V="-v" + Q="" + shift +fi + +NOZIP="" +if [ "$1" == "-nozip" ]; then + NOZIP="1" + shift +fi + +BASE="$1" +IMAGES="$2" +OUTPUT="$3" + +if [[ -z "$BASE" || -z "$IMAGES" || -z "$OUTPUT" ]] ; then + echo "usage: combine_sdks.sh [-v] [-nozip] BASE IMAGES OUTPUT" + echo + echo " BASE and IMAGES should be sdk zip files. The system image files," + echo " emulator and other runtime files will be copied from IMAGES and" + echo " everything else will be copied from BASE. All of this will be" + echo " bundled into OUTPUT and zipped up again (unless -nozip is specified)." + echo + exit 1 +fi + +TMP=$(mktemp -d) + +TMP_ZIP=tmp.zip + +# determine executable extension +case `uname -s` in + *_NT-*) # for Windows + EXE=.exe + ;; + *) + EXE= + ;; +esac + +BASE_DIR="$TMP"/base +IMAGES_DIR="$TMP"/images +OUTPUT_TMP_ZIP="$BASE_DIR/$TMP_ZIP" + +unzip $Q "$BASE" -d "$BASE_DIR" +unzip $Q "$IMAGES" -d "$IMAGES_DIR" + +UNZIPPED_BASE_DIR=$(echo "$BASE_DIR"/*) +UNZIPPED_IMAGE_DIR=$(echo "$IMAGES_DIR"/*) + +# +# The commands to copy over the files that we want +# + +# replace tools/emulator # at this time we do not want the exe from SDK1.x +replace tools/lib/images +replace tools/lib/res +replace tools/lib/fonts +replace tools/lib/layoutlib.jar +replace docs +replace android.jar + +for i in widgets categories broadcast_actions service_actions; do + replace tools/lib/$i.txt +done + +if [ -d "$UNZIPPED_BASE_DIR"/usb_driver ]; then + replace usb_driver +fi + +# +# end +# + +if [ -z "$NOZIP" ]; then + pushd "$BASE_DIR" &> /dev/null + # rename the directory to the leaf minus the .zip of OUTPUT + LEAF=$(echo "$OUTPUT" | sed -e "s:.*\.zip/::" | sed -e "s:.zip$::") + mv * "$LEAF" + # zip it + zip $V -qr "$TMP_ZIP" "$LEAF" + popd &> /dev/null + + cp $V "$OUTPUT_TMP_ZIP" "$OUTPUT" + echo "Combined SDK available at $OUTPUT" +else + OUT_DIR="${OUTPUT//.zip/}" + mv $V "$BASE_DIR"/* "$OUT_DIR" + echo "Unzipped combined SDK available at $OUT_DIR" +fi + +rm $V -rf "$TMP" + |