152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project#!/bin/bash
252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectif [ "$1" == "-h" ]
452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectthen
552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    cat <<- EOH
652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project		    Usage: $0 [-p] [folder]
752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project		      -p option prints out unused strings, otherwise a total count is printed
852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project		      folder option causes only that app folder to be scanned, default is to scan all folders onder apps/
952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project		EOH
1052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    exit
1152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectfi
1252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
1352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectshowall=no
1452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectif [ "$1" == "-p" ]
1552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectthen
1652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    showall=yes
1752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    shift
1852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectfi
1952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
2052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectapps=$1
2152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectif [ "$apps" == "" ]
2252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectthen
2352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    apps=$ANDROID_BUILD_TOP/packages/apps/*
2452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectfi
2552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
2652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectfor app in $apps
2752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectdo
2852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    if [ -d $app/res ]
2952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    then
3052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        pushd $app > /dev/null
318d014167ecb6b3d5e85f4945cae2256e0ddbf758Michael Chan        # Two sed's were needed because the | operator is not supported on the mac
328d014167ecb6b3d5e85f4945cae2256e0ddbf758Michael Chan        for i in $(grep -Rs "\(string\|plurals\) name=" res | sed 's/.*string name=\"//' | sed 's/.*plurals name=\"//'|sed 's/".*$//'|sort -u)
3352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        do
3469b04ff53b8d5ab611c289ae03ed6caa1559ef07Marco Nelissen            echo $i $(grep -Rws R.plurals.$i\\\|R.string.$i\\\|@string/$i .|wc -l)
3552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        done | grep ' 0$' | {
3652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            if [ "$showall" == "yes" ]
3752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            then
3852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                echo $app
3952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                cat
4052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            else
4152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                count=$(wc -l)
4252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                if [ "$count" != "0" ]
4352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                then
4452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    echo $app: $count unused strings
4552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                fi
4652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            fi
4752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        }
4852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        popd $app > /dev/null
4952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    fi
5052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectdone
51