1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #!/bin/sh
- PROGNAME=$(basename "$0")
- PROGDIR=$(dirname "$0")
- usage()
- {
- echo "Usage: $PROGNAME [option] -p path-of-project"
- echo ""
- echo "-p Specifyed the path of your project"
- echo "-r Remove unused image file"
- echo "-h Show this message"
- exit 1
- }
- PRJ_ROOT=$1
- REMOVE=false
- COUNT=0
- while getopts ":rp:" optname
- do
- case "$optname" in
- "p")
- PRJ_ROOT=$OPTARG # specifyed the project root
- ;;
- "r")
- REMOVE=true # remove unused image resource
- ;;
- "?")
- usage
- ;;
- ":")
- echo "No argument value for option $OPTARG"
- ;;
- *)
- # Should not occur
- echo "Unknown error while processing options"
- ;;
- esac
- #echo "OPTIND is now $OPTIND"
- done
- check_files=`find $PRJ_ROOT -name '*.xib' -o -name '*.storyboard' -o -name '*.[mh]' -o -name '*.pch' -o -name '*.java' -o -name '*.xml'`
- for png in `find $PRJ_ROOT -name '*.png'`
- do
- match_name=`basename $png`
- suffix1="@2x.png"
- suffix2=".9.png"
- suffix3=".png"
- suffix4="@3x.png"
- if [[ ${match_name/${suffix1}//} != $match_name ]]; then
- match_name=${match_name%$suffix1}
- elif [[ ${match_name/${suffix4}//} != $match_name ]]; then
- match_name=${match_name%$suffix4}
- elif [[ ${match_name/${suffix2}//} != $match_name ]]; then
- match_name=${match_name%$suffix2}
- else
- match_name=${match_name%$suffix3}
- fi
- dir_name=`dirname $png`
- if [[ $dir_name =~ .bundle$ ]] || [[ $dir_name =~ .appiconset$ ]] || [[ $dir_name =~ .launchimage$ ]]; then
- continue
- fi
- referenced=false
- for file in `echo $check_files | sed 's/\n/ /g'`
- do
- if [[ $png =~ ".imageset" ]]; then
- assetName=${png%.imageset*}
- assetName=${assetName##*/}
- if grep -sh "$assetName" "$file"; then
- referenced=true
- fi
- elif grep -sh "$match_name" "$file"; then
- referenced=true
- fi
- done
- if ! $referenced ; then
- echo "The '$png' was not referenced in any file"
- COUNT=`expr $COUNT + 1`
- if $REMOVE ; then
- echo "Do remove unused image file '$png'"
- rm -f $png
- fi
- fi
- done
- echo "============= Total $COUNT unused image files ============="
|