#!/bin/bash if ! which xmlstarlet > /dev/null then echo "You need to have the 'xmlstarlet' command in your path" exit fi apps=$1 CWD=$(pwd)/ if [ "$apps" = "" ] then echo "Please specify the path to an application, or '--all' to process all applications" exit elif [ "$apps" = "--all" ] then apps=$ANDROID_BUILD_TOP/packages/apps/* fi BASE=$(pwd)/$(dirname $0) for app in $apps do pushd $app $BASE/findunusedresources -p . | { read LINE NUM while [ "$LINE" != "" ] do if [ "Z$LINE" = "Z-----------------------------------------------------------" ] then # skip true elif [ "$LINE" = "$app" ] then # skip true else # try to find the missing resource find res | grep -w $LINE | { read RESLINE while [ "$RESLINE" != "" ] do if [ -f $RESLINE ] then echo REMOVING FILE: $RESLINE git rm $RESLINE > /dev/null else echo WARNING unexpected result for $LINE fi read RESLINE done } grep -Rwl $LINE res | { read RESLINE while [ "$RESLINE" != "" ] do ISSTRING=$(echo "$RESLINE" | grep -w "strings\.xml") if [ -n "$ISSTRING" ] then echo REMOVING STRING $LINE from $RESLINE xmlstarlet ed -P -S -d "/resources/string[@name='$LINE']" $RESLINE > tf$$ mv tf$$ $RESLINE git add $RESLINE else echo REMOVING $LINE from $RESLINE xmlstarlet ed -P -S -d "/resources/*[@name='$LINE']" $RESLINE > tf$$ mv tf$$ $RESLINE git add $RESLINE fi read RESLINE done } fi read LINE NUM done } popd done echo echo "Done." echo "Please rebuild the updated applications to make sure that everything still builds." echo "After rebuilding, rerun 'findunusedresources' or 'removeunusedresources' to see if any more resources are now unused." echo "When you're done, you can 'git commit' the change." echo