all the unused resources. It uses the 'findunusedresources' script to find the resources, and the 'xmlstarlet' command to edit xml files. The result is an uncommitted git change that you can verify, modify if needed, and then check in. Also put some more fixes in the findunusedresources script to keep it from reporting false positives.
85 lines
2.6 KiB
Bash
Executable File
85 lines
2.6 KiB
Bash
Executable File
#!/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
|