#!/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

CMDLINE="$@"
moz_libdir=/usr/lib/mozilla-thunderbird
MRE_HOME=/usr/lib/mre/mre-thunderbird

# do not honor MOZILLA_FIVE_HOME for debian release.
if [ true ]; then
  # 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"

LOCK_FILE=`find $HOME/.mozilla-thunderbird/default/ -name lock` 

MOZ_ARGS=
donext=

for opt_in in $CMDLINE
do
  if [ -z $donext ]
  then 
     if [ "$opt_in" = "-contentLocale" ]
     then
       # let the command line eat the env determined value
       LOCALE_ARGS=
       next=
       donext=
     fi

     if [ "$opt_in" = -UILocale ]
     then
       # let the command line eat the env determined value
       LOCALE_ARGS=
       next=
       donext=
     fi

     if [ ! -z $LOCK_FILE ]
     then 
       # if -compose and not remote (aka no lockfile)
       if [ $opt_in = "-compose" ]
       then 
         next=compose
         donext=true
       else
          MOZ_ARGS="$MOZ_ARGS $opt_in"
	  donext=
       fi
     fi
  else 
     # here come the transforming commands
     if [ "$next" = "compose" ]
     then
        # cut off protocol
        mail_to=$(expr match "$opt_in" "mailto:\(.*\)")
        MOZ_ARGS="$MOZ_ARGS -remote mailto($opt_in)"
     fi
     donext=
     next=
  fi
done


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