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