#!/bin/sh
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL.  You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation.  Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation.  All Rights
# Reserved.
#

## $Id: mozilla.in,v 1.1 2003/04/05 20:52:38 mscott%netscape.com Exp $
## 
## Usage:
##
## $ mozilla [args]
##
## This script is meant to run the mozilla-thunderbird-bin binary from either 
## mozilla/xpfe/bootstrap or mozilla/dist/bin.
##
## The script will setup all the environment voodoo needed to make
## the mozilla-thunderbird-bin binary to work.
##

#uncomment for debugging
#set -x

moz_libdir=/usr/lib/mozilla-thunderbird
MRE_HOME=/usr/lib/mre/mre-thunderbird

# honor MOZILLA_FIVE_HOME if it's there
if [ -n "$MOZILLA_FIVE_HOME" ] ; then
  dist_bin="$MOZILLA_FIVE_HOME"
else
  # Use run-mozilla.sh in the current dir if it exists
  # If not, then start resolving symlinks until we find run-mozilla.sh
  found=0
  progname=$0
  curdir=`dirname "$progname"`
  run_moz="$curdir/run-mozilla.sh"
  if test -x "$run_moz"; then
    dist_bin=$curdir
    found=1
  else
    here=`/bin/pwd`
    while [ -h "$progname" ]; do
      bn=`basename "$progname"`
      cd `dirname "$progname"`
      progname=`/bin/ls -l "$bn" |sed -e 's/^.* -> //' `
      if [ ! -x "$progname" ]; then
        break
      fi
      curdir=`dirname "$progname"`
      run_moz="$curdir/run-mozilla.sh"
      if [ -x "$run_moz" ]; then
        cd "$curdir"
        dist_bin=`pwd`
        found=1
        break
      fi
    done
    cd "$here"
  fi
  if [ $found = 0 ]; then
    # Check default compile-time libdir
    if [ -x "$moz_libdir/run-mozilla.sh" ]; then
      dist_bin=$moz_libdir
    else 
      echo "Cannot find mozilla runtime directory. Exiting."
      exit 1
    fi
  fi
fi

script_args=""
moreargs=""
debugging=0
MOZILLA_BIN="mozilla-thunderbird-bin"

if [ "$OSTYPE" = "beos" ]; then
  mimeset -F $MOZILLA_BIN
fi

while [ $# -gt 0 ]
do
  case "$1" in
    -p | -pure)
      MOZILLA_BIN="mozilla-thunderbird-bin.pure"
      shift
      ;;
    -g | --debug)
      script_args="$script_args -g"
      debugging=1
      shift
      ;;
    -d | --debugger)
      script_args="$script_args -d $2"
      shift 2
      ;;
    *)
      moreargs="$moreargs \"$1\""
      shift 1
      ;;
  esac
done

HOOKS=`find $dist_bin/startup-hooks.d/* 2>/dev/null`
for i in $HOOKS; do
  $i
done


LOCALES_DIR=/var/lib/mozilla-thunderbird/locales.d/
MOZLOCALE=""                                                                               
LOCALES=$(cat $LOCALES_DIR/* | sed -e "s/#.*$//" | grep -v ^$)
DEFAULT_LOCALE=$(cat $LOCALES_DIR/* | sed -e "s/#.*$//" | grep -v ^$| 
head -n 1)
                                                                                
# try all locales to match exactly
for locale in $LOCALES; do
   # break if already set
                                                                                
   lang=$(expr "$locale" : "\(.*\):.*")
   COUNTRY=$(expr "$locale" : ".*\:\(.*\)")
   SYSLOCALE="$lang""_$COUNTRY"
                                                                                
   MATCHED=$(expr "$LANG" : ".*\($SYSLOCALE\).*")
                                                                                
   #echo matched: $MATCHED
   if test "x$MATCHED" != "x"; then
        MOZLOCALE="$lang-$COUNTRY"
        export MOZLOCALE
   fi
                                                                                
   if test "x$MOZLOCALE" != "x"; then
        break;
   fi
done
                                                                                
# match locales only with LANGUAGE
for locale in $LOCALES; do
   if test "x$MOZLOCALE" != "x"; then
        break
   fi
                                                                                
   lang=$(expr "$locale" : "\(.*\):.*")
   COUNTRY=$(expr "$locale" : ".*\:\(.*\)")
   SYSLOCALE="$lang""_$COUNTRY"
                                                                                
   MATCHED=$(expr "$LANG" : "\($lang.*\)")
                                                                                
   #echo matched2: $MATCHED
   if test "x$MATCHED" != "x"; then
        MOZLOCALE="$lang-$COUNTRY"
        export MOZLOCALE
   fi
done
                                                                                
# set absolut default locale
if test "x$MATCHED" = "x"; then
   lang=$(expr "$DEFAULT_LOCALE" : "\(.*\):.*")
   COUNTRY=$(expr "$DEFAULT_LOCALE" : ".*\:\(.*\)")
   MOZLOCALE="$lang-$COUNTRY"
   export MOZLOCALE
fi
                                                                                
echo selected locale: $MOZLOCALE
                                                                                
LOCALE_ARGS="-contentLocale $MOZLOCALE -UILocale $MOZLOCALE"

export MRE_HOME
eval "set -- $moreargs"
if [ $debugging = 1 ]
then
  echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN $LOCALE_ARGS "$@"
fi
exec "$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" $LOCALE_ARGS "$@"
