#!/bin/bash set -e usage() { cat <<EOF $0 --sdk <SDK file path> --system <system sdk file path> --support <support library file path> EOF exit 2 } banner() { echo "**************************************************" echo "Updating $1 " echo "**************************************************" } update_sdk() { if [ -f "$SDK" ] then banner "SDK" cd $ROOT_DIR/current rm -f android.jar uiautomator.jar framework.aidl unzip -j $SDK */android.jar */uiautomator.jar */framework.aidl fi } update_system_sdk() { if [ -f "$SYSTEM_SDK" ] then banner "system SDK" cp -f $SYSTEM_SDK $ROOT_DIR/system_current/android.jar fi } update_support_lib() { if [ -f "$SUPPORT" ] then banner "support library" rm -rf $ROOT_DIR/current/support/ cd $ROOT_DIR/current unzip $SUPPORT >/dev/null # Remove duplicates rm -f support/v7/appcompat/libs/android-support-v4.jar rm -f support/multidex/instrumentation/libs/android-support-multidex.jar # Remove samples rm -rf support/samples # Remove source files find support -name "*.java" \ -o -name "*.aidl" \ -o -name AndroidManifest.xml \ | xargs rm # Other misc files we don't need find support -name "*.gradle" \ -o -name ".classpath" \ -o -name ".project" \ -o -name "project.properties" \ -o -name "source.properties" \ -o -name ".readme" \ -o -name "README.txt" \ -o -name "package.html" \ -o -name "NOTICE.txt" \ | xargs rm # Now we can remove empty dirs find . -type d -empty -delete fi } main() { while [ "$#" -gt 0 ] do case "$1" in --help|-h) usage ;; --sdk) export SDK="$2" shift; shift ;; --system) export SYSTEM_SDK="$2" shift; shift ;; --support) export SUPPORT="$2" shift; shift ;; -*) usage ;; *) break ;; esac done ROOT_DIR=$(realpath $(dirname $0)) update_sdk update_system_sdk update_support_lib } main $*