#!/bin/bash
#
# firefox-gen-langpack-stub - Firefox Langpack Stub Generator
#
# author: 	Caius Chance <cchance@redhat.com>
# date: 	23 Dec 2006
# version:	0.8.0
# modified:	11 Jan 2007 (Jens Petersen <petersen@redhat.com>)
#
# Notes: [bz211572] - Changing 'general.useragent.locale=en-US' in 
#                     'locale/global/intl.properties' allows firefox to idenfify
#                      which langpack is using, which eventually able to 
#                      retrieve locale used by current firefox process.

if [ ! $# = 2 ]; then
	echo 'usage: firefox-gen-langpack-stub ab-CD xpi_location';
	exit
fi


# variables.
ABCD=$1
LPDIR=$2
ENUS=en-GB
TMPDIR=`mktemp -d`
CMDROOT=`pwd`

# clone to ab-CD.manifest
unzip $LPDIR/$ENUS.xpi -d $TMPDIR


# ab-CD.manifest: change all '$ENUS' into 'ab-CD'.
sed -ie 's/em:id="'.*'"/em:id="langpack-'$ABCD'@firefox.mozilla.org"/' $TMPDIR/install.rdf
sed -ie 's/em:name="'.*'"/em:name="'$ABCD' Dummy Language Pack"/' $TMPDIR/install.rdf
sed -ie 's/em:creator="'.*'"/em:creator="Red Hat"/' $TMPDIR/install.rdf
sed -ie 's/<em:contributor>'.*'<\/em:contributor>/<em:contributor>Caius Chance<\/em:contributor>/' -i $TMPDIR/install.rdf


# ab-CD.manifest: change all '$ENUS' into 'ab-CD'.
sed -ie s/$ENUS/$ABCD/g $TMPDIR/chrome.manifest


# ab-CD.jar: unzip.
unzip $TMPDIR/chrome/$ENUS.jar -d $TMPDIR/chrome/


# locale/$ENUS: rename into 'ab-CD'.
mv $TMPDIR/chrome/locale/$ENUS $TMPDIR/chrome/locale/$ABCD


# locale/ab-CD/global/accept2locale.properties: 
# change 'en = $ENUS' to 'ab = ab-CD'.
echo `expr substr $ABCD 1 2`' = '$ABCD >> \
	$TMPDIR/chrome/locale/$ABCD/global/accept2locale.properties

	
# locale/ab-CD/global/intl.properties:
# change 'intl.accept_languages = en-us, en'
# to 'intl.accept_languages = ab-cd, ab'.
sed -ie 's/intl.accept_languages='`expr substr $ENUS 1 2`'-'`expr substr $ENUS 4 2 | tr A-Z a-z`', '`expr substr $ENUS 1 2`'/intl.accept_languages='`expr substr $ABCD 1 2`'-'`expr substr $ABCD 4 2 | tr A-Z a-z`', '`expr substr $ABCD 1 2`', '`expr substr $ENUS 1 2`'-'`expr substr $ENUS 4 2 | tr A-Z a-z`', '`expr substr $ENUS 1 2`'/' $TMPDIR/chrome/locale/$ABCD/global/intl.properties
# the following line does the difference on the 'navigator.language' in firefox.
sed -ie 's/general.useragent.locale='$ENUS'/general.useragent.locale='$ABCD'/' $TMPDIR/chrome/locale/$ABCD/global/intl.properties


# locale/ab-CD/reporter/contents.rdf: change ALL '$ENUS' into 'ab-CD'
sed -ie s/$ENUS/$ABCD/g $TMPDIR/chrome/locale/$ABCD/reporter/contents.rdf


# locale/ab-CD: zip to ab-CD.jar.
cd $TMPDIR/chrome
zip $TMPDIR/chrome/$ABCD.jar -r locale


# ab-CD.xpi: generate xpi langpack.
mkdir -p $TMPDIR/xpi/chrome
cp $TMPDIR/install.rdf $TMPDIR/chrome.manifest $TMPDIR/xpi/
cp $TMPDIR/chrome/chromelist.txt $TMPDIR/chrome/$ABCD.jar $TMPDIR/xpi/chrome/
cd $TMPDIR/xpi/
zip $CMDROOT/$LPDIR/$ABCD.xpi -r *

# clean temporary files.
rm -r $TMPDIR
exit
