#!/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 $* |