From dd27a0ebcd8d6c1ecffbc8eeeb3fe9709b31b338 Mon Sep 17 00:00:00 2001 From: Eric House Date: Tue, 10 May 2011 18:26:54 -0700 Subject: [PATCH] first cut at script to do stuff with xml string resources, e.g. find strings that aren't used --- xwords4/android/scripts/strings_check.sh | 57 ++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 xwords4/android/scripts/strings_check.sh diff --git a/xwords4/android/scripts/strings_check.sh b/xwords4/android/scripts/strings_check.sh new file mode 100755 index 000000000..385724f24 --- /dev/null +++ b/xwords4/android/scripts/strings_check.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +set -u -e + +declare -A ENG_IDS +LOCS="" +SEARCH_SOURCE="" + +ENG=~/dev/git/ANDROID_BRANCH/xwords4/android/XWords4/res/values/strings.xml + +usage() { + echo "usage: $0 [--loc ]*" >&2 + exit 1 +} + +list_ids() { + XML_FILE=$1 + xmlstarlet sel -T -t -m "/resources/string" -v @name -o " " $XML_FILE +} + +while [ $# -gt 0 ]; do + case $1 in + --loc) + [ $# -gt 1 ] || usage + [ -e $2 ] || usage + LOCS="$LOCS $2" + shift + ;; + *) + usage + ;; + esac + shift +done + +# echo "checking $ENG for ids not in any .java file" +for ID in $(list_ids $ENG); do + ENG_IDS[$ID]=1 +done + +if [ -n "$SEARCH_SOURCE" ]; then + if grep -q R.string.$ID $(find . -name '*.java'); then + : + elif grep -q "@string/$ID" $(find . -name '*.xml'); then + : + else + echo "$ID appears to be unused" + fi +fi + + +for LOC in $LOCS; do + IDS="${!ENG_IDS[*]}" + for ID in $IDS; do + grep -q $ID $LOC || echo "$ID not found in $LOC" + done +done \ No newline at end of file