Refactor the langpack symlink creation stuff at startup

We try to create a symlink for the short locale first if we can,
and then try the longer locale.  The code to do this is extremely
similar, so create a bash function to do the work for each.

This will make it easier to switch to a packed langpack extension
format in the future, which will help with startup performance.
This commit is contained in:
Christopher Aillon 2011-03-12 20:16:49 -08:00
parent 779c27ab45
commit 36d2d05089

View File

@ -191,28 +191,21 @@ if [ $MOZILLA_DOWN -ne 0 ]; then
# So that pt-BR doesn't try to use pt for example # So that pt-BR doesn't try to use pt for example
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"`
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"`
MANIFEST="chrome.manifest"
# Try to link global langpacks to an extension directory function create_langpack_link() {
if [ -f $MOZ_LANGPACKS_DIR/langpack-${SHORTMOZLOCALE}@firefox.mozilla.org/$MANIFEST ]; then local language=$*
if [ -d $MOZ_EXTENSIONS_PROFILE_DIR/langpack-${SHORTMOZLOCALE}@firefox.mozilla.org ]; then local langpack=langpack-${language}@firefox.mozilla.org
rmdir "$MOZ_EXTENSIONS_PROFILE_DIR/langpack-${SHORTMOZLOCALE}@firefox.mozilla.org" > /dev/null 2>&1 if [ -f $MOZ_LANGPACKS_DIR/$langpack/chrome.manifest ]; then
fi rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
if ! [ -e $MOZ_EXTENSIONS_PROFILE_DIR/langpack-${SHORTMOZLOCALE}@firefox.mozilla.org ]; then ln -s $MOZ_LANGPACKS_DIR/$langpack \
ln -s $MOZ_LANGPACKS_DIR/langpack-${SHORTMOZLOCALE}@firefox.mozilla.org \ $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
$MOZ_EXTENSIONS_PROFILE_DIR/langpack-${SHORTMOZLOCALE}@firefox.mozilla.org echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG
echo "$MOZ_EXTENSIONS_PROFILE_DIR/langpack-${SHORTMOZLOCALE}@firefox.mozilla.org" > $FEDORA_LANGPACK_CONFIG return 0
fi fi
elif [ -f $MOZ_LANGPACKS_DIR/langpack-${MOZLOCALE}@firefox.mozilla.org/$MANIFEST ]; then return 1
if [ -d $MOZ_EXTENSIONS_PROFILE_DIR/langpack-${MOZLOCALE}@firefox.mozilla.org ]; then }
rmdir "$MOZ_EXTENSIONS_PROFILE_DIR/langpack-${MOZLOCALE}@firefox.mozilla.org" > /dev/null 2>&1
fi create_langpack_link $SHORTMOZLOCALE || create_langpack_link $MOZLOCALE || true
if ! [ -e $MOZ_EXTENSIONS_PROFILE_DIR/langpack-${MOZLOCALE}@firefox.mozilla.org ]; then
ln -s $MOZ_LANGPACKS_DIR/langpack-${MOZLOCALE}@firefox.mozilla.org \
$MOZ_EXTENSIONS_PROFILE_DIR/langpack-${MOZLOCALE}@firefox.mozilla.org
echo "$MOZ_EXTENSIONS_PROFILE_DIR/langpack-${MOZLOCALE}@firefox.mozilla.org" > $FEDORA_LANGPACK_CONFIG
fi
fi
fi fi
# Prepare command line arguments # Prepare command line arguments