#!/bin/sh # # The contents of this file are subject to the Netscape Public # License Version 1.1 (the "License"); you may not use this file # except in compliance with the License. You may obtain a copy of # the License at http://www.mozilla.org/NPL/ # # Software distributed under the License is distributed on an "AS # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or # implied. See the License for the specific language governing # rights and limitations under the License. # # The Original Code is mozilla.org code. # # The Initial Developer of the Original Code is Netscape # Communications Corporation. Portions created by Netscape are # Copyright (C) 1998 Netscape Communications Corporation. All # Rights Reserved. # # Contributor(s): # ## ## Usage: ## ## $ mozilla ## ## This script is meant to run a mozilla program from the mozilla ## rpm installation. ## ## The script will setup all the environment voodoo needed to make ## mozilla work. cmdname=`basename $0` ## ## Variables ## MOZ_ARCH=$(uname -m) case $MOZ_ARCH in x86_64 | ia64 | s390 ) MOZ_LIB_DIR="/usr/lib64" SECONDARY_LIB_DIR="/usr/lib" ;; * ) MOZ_LIB_DIR="/usr/lib" SECONDARY_LIB_DIR="/usr/lib64" ;; esac if [ ! -x $MOZ_LIB_DIR/firefox-FIREFOX_VERSION/firefox-bin ]; then if [ ! -x $SECONDARY_LIB_DIR/firefox-FIREFOX_VERSION/firefox-bin ]; then echo "Error: $MOZ_LIB_DIR/firefox-FIREFOX_VERSION/firefox-bin not found" if [ -d $SECONDARY_LIB_DIR ]; then echo " $SECONDARY_LIB_DIR/firefox-FIREFOX_VERSION/firefox-bin not found" fi exit 1 fi MOZ_LIB_DIR="$SECONDARY_LIB_DIR" fi MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox-FIREFOX_VERSION" MOZ_EXTENSIONS_DIR="$MOZ_DIST_BIN/extensions" MOZ_PROGRAM="$MOZ_DIST_BIN/firefox-bin" MOZ_CLIENT_PROGRAM="$MOZ_DIST_BIN/mozilla-xremote-client" MOZ_CLIENT_PROGRAM_PARAM="-a firefox" ## ## Set MOZILLA_FIVE_HOME ## MOZILLA_FIVE_HOME="$MOZ_DIST_BIN" export MOZILLA_FIVE_HOME ## ## Make sure that we set the plugin path ## if [ "$MOZ_PLUGIN_PATH" ] then MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/plugins:$MOZ_DIST_BIN/plugins else MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/plugins:$MOZ_DIST_BIN/plugins fi export MOZ_PLUGIN_PATH ## ## Set FONTCONFIG_PATH for Xft/fontconfig ## FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" export FONTCONFIG_PATH ## ## In order to better support certain scripts (such as Indic and some CJK ## scripts), Fedora builds its Firefox, with permission from the Mozilla ## Corporation, with the Pango system as its text renderer. This change ## may negatively impact performance on some pages. To disable the use of ## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching ## Firefox. ## # # MOZ_DISABLE_PANGO=1 # export MOZ_DISABLE_PANGO # function check_running() { $MOZ_CLIENT_PROGRAM $MOZ_CLIENT_PROGRAM_PARAM 'ping()' 2>/dev/null >/dev/null RETURN_VAL=$? if [ "$RETURN_VAL" -eq "2" ]; then echo 0 return 0 else echo 1 return 1 fi } function open_mail() { if [ "${ALREADY_RUNNING}" -eq "1" ]; then exec $MOZ_CLIENT_PROGRAM $MOZ_CLIENT_PROGRAM_PARAM 'xfeDoCommand(openInbox)' \ 2>/dev/null >/dev/null else exec $MOZ_PROGRAM $* fi } function open_compose() { if [ "${ALREADY_RUNNING}" -eq "1" ]; then exec $MOZ_CLIENT_PROGRAM $MOZ_CLIENT_PROGRAM_PARAM 'xfeDoCommand(composeMessage)' \ 2>/dev/null >/dev/null else exec $MOZ_PROGRAM $* fi } # OK, here's where all the real work gets done # check to see if there's an already running instance or not ALREADY_RUNNING=`check_running` # If there is no command line argument at all then try to open a new # window in an already running instance. if [ "${ALREADY_RUNNING}" -eq "1" ] && [ -z "$1" ]; then exec $MOZ_CLIENT_PROGRAM $MOZ_CLIENT_PROGRAM_PARAM "xfeDoCommand(openBrowser)" 2>/dev/null>/dev/null fi # check system locale MOZARGS= # Try without a local variant first, then with a local variant # So that pt-BR doesn't try to use pt for example SHORTMOZLOCALE=`echo $LANG | sed "s|_\([^.]*\).*||g"` [ -f $MOZ_EXTENSIONS_DIR/langpack-${SHORTMOZLOCALE}@firefox.mozilla.org/chrome/$SHORTMOZLOCALE.jar ] && MOZARGS="-UILocale $SHORTMOZLOCALE" MOZLOCALE=`echo $LANG | sed "s|_\([^.]*\).*|-\1|g"` [ -f $MOZ_EXTENSIONS_DIR/langpack-${MOZLOCALE}@firefox.mozilla.org/chrome/$MOZLOCALE.jar ] && MOZARGS="-UILocale $MOZLOCALE" # if there's no command line argument and there's not a running # instance then just fire up a new copy of the browser if [ -z "$1" ]; then exec $MOZ_PROGRAM $MOZARGS 2>/dev/null >/dev/null fi unset RETURN_VAL # If there's a command line argument but it doesn't begin with a - # it's probably a url. Try to send it to a running instance. USE_EXIST=0 opt="$1" case "$opt" in -mail) open_mail ${1+"$@"} ;; -compose) open_compose ${1+"$@"} ;; -*) ;; *) USE_EXIST=1 ;; esac if [ "${USE_EXIST}" -eq "1" ] && [ "${ALREADY_RUNNING}" -eq "1" ]; then opt=`echo -n "$opt" | sed -e 's/,/%2c/g' -e 's/ /%20/g'` # check to make sure that the command contains at least a :/ in it. echo $opt | grep -e ':/' 2>/dev/null > /dev/null RETURN_VAL=$? if [ "$RETURN_VAL" -eq "1" ]; then # if it doesn't begin with a '/' and it exists when the pwd is # prepended to it then append the full path echo $opt | grep -e '^/' 2>/dev/null > /dev/null if [ "${RETURN_VAL}" -ne "0" ] && [ -e "`pwd`/$opt" ]; then opt="`pwd`/$opt" fi exec $MOZ_CLIENT_PROGRAM $MOZ_CLIENT_PROGRAM_PARAM "openurl($opt)" 2>/dev/null >/dev/null fi # just pass it off if it looks like a url exec $MOZ_CLIENT_PROGRAM $MOZ_CLIENT_PROGRAM_PARAM "openurl($opt)" 2>/dev/null >/dev/null fi exec $MOZ_PROGRAM $MOZARGS ${1+"$@"}