#!/bin/sh

#
# See setup for user tweakables.
#

usage()
{
    echo "This script compares two GSI files and puts new strings into"
    echo "the output GSI file"
    echo
    echo "Usage:" ${0##*/} gsi_old gsi_new gsi_out
    echo
}

test $# -lt 3 -o "$1" = "--help" && usage && exit 1;

gsi_old="$1"
gsi_new="$2"
gsi_out="$3"

gsi_old_norm=`mktemp /tmp/extract-new-strings.XXXXXX`
gsi_new_norm=`mktemp /tmp/extract-new-strings.XXXXXX`

gsi_old_sort=`mktemp /tmp/extract-new-strings.XXXXXX`
gsi_new_sort=`mktemp /tmp/extract-new-strings.XXXXXX`

echo "Removing unwanted strings..."

# remove localizations from the util dir (are generated during build)
grep -v "^[^	]*	util" $gsi_old >>$gsi_old_norm
grep -v "^[^	]*	util" $gsi_new >>$gsi_new_norm

echo "Normalizing..."

perl -pi -e 's/^([^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t)[0-9]+/${1}999/' $gsi_old_norm
perl -pi -e 's/^([^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t)[0-9]+/${1}999/' $gsi_new_norm

echo "Sorting..."

sort $gsi_old_norm >$gsi_old_sort
sort $gsi_new_norm >$gsi_new_sort

echo "Extracting..."

diff -up $gsi_old_sort $gsi_new_sort | grep -v "^+++" | grep "^+" | sed "s|^+||" >$gsi_out

rm -f $gsi_old_norm $gsi_new_norm $gsi_old_sort $gsi_new_sort
