Created
September 6, 2013 16:16
-
-
Save djbobbydrake/6466129 to your computer and use it in GitHub Desktop.
Firefox shell script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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: | |
## | |
## $ firefox | |
## | |
## 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 | s390x | sparc64) | |
MOZ_LIB_DIR="/usr/lib64" | |
SECONDARY_LIB_DIR="/usr/lib" | |
;; | |
* ) | |
MOZ_LIB_DIR="/usr/lib" | |
SECONDARY_LIB_DIR="/usr/lib64" | |
;; | |
esac | |
MOZ_FIREFOX_FILE="firefox" | |
if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then | |
if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then | |
echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" | |
if [ -d $SECONDARY_LIB_DIR ]; then | |
echo " $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" | |
fi | |
exit 1 | |
fi | |
MOZ_LIB_DIR="$SECONDARY_LIB_DIR" | |
fi | |
MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" | |
MOZ_XUL_DIR="$MOZ_LIB_DIR//xulrunner" | |
MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks" | |
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" | |
MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE" | |
MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh" | |
## | |
## Set MOZ_GRE_CONF | |
## | |
MOZ_GRE_CONF=/etc/gre.d/gre.conf | |
if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then | |
MOZ_GRE_CONF=/etc/gre.d/gre64.conf | |
fi | |
export MOZ_GRE_CONF | |
## | |
## Set MOZILLA_FIVE_HOME | |
## | |
MOZILLA_FIVE_HOME="$MOZ_DIST_BIN" | |
export MOZILLA_FIVE_HOME | |
## | |
## Select the propper plugin dir | |
## Wrapped plug-ins are located in /lib/mozilla/plugins-wrapped | |
## | |
if [ -x "/usr/bin/mozilla-plugin-config" ] | |
then | |
MOZ_PLUGIN_DIR="plugins-wrapped" | |
else | |
MOZ_PLUGIN_DIR="plugins" | |
fi | |
## | |
## Make sure that we set the plugin path | |
## | |
if [ "$MOZ_PLUGIN_PATH" ] | |
then | |
MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR | |
else | |
MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR | |
fi | |
export MOZ_PLUGIN_PATH | |
## | |
## Set MOZ_APP_LAUNCHER for gnome-session | |
## | |
export MOZ_APP_LAUNCHER="/usr/bin/firefox" | |
## | |
## If plugins are wrapped, check them | |
## | |
if [ -x "/usr/bin/mozilla-plugin-config" ] | |
then | |
/usr/bin/mozilla-plugin-config | |
fi | |
## | |
## 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 | |
# | |
## | |
## Disable the GNOME crash dialog, Moz has it's own | |
## | |
GNOME_DISABLE_CRASH_DIALOG=1 | |
export GNOME_DISABLE_CRASH_DIALOG | |
# OK, here's where all the real work gets done | |
## | |
## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1 | |
## in your environment before launching Firefox. | |
## | |
# | |
# MOZ_DISABLE_LANGPACKS=1 | |
# export MOZ_DISABLE_LANGPACKS | |
# | |
## | |
## Automatically installed langpacks are tracked by .fedora-langpack-install | |
## config file. | |
## | |
FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" | |
# MOZ_DISABLE_LANGPACKS disables language packs completely | |
MOZILLA_DOWN=0 | |
if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then | |
if [ -x $MOZ_XUL_DIR/mozilla-xremote-client ]; then | |
# Is firefox running? | |
$MOZ_XUL_DIR/mozilla-xremote-client -a firefox 'ping()' > /dev/null 2>&1 | |
MOZILLA_DOWN=$? | |
fi | |
fi | |
# Modify language pack configuration only when firefox is not running | |
# and language packs are not disabled | |
if [ $MOZILLA_DOWN -ne 0 ]; then | |
# Clear already installed langpacks | |
mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR | |
if [ -f $FEDORA_LANGPACK_CONFIG ]; then | |
rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1 | |
rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1 | |
fi | |
# Get locale from system | |
CURRENT_LOCALE=$LC_ALL | |
CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES} | |
CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} | |
# 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 $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` | |
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` | |
function create_langpack_link() { | |
local language=$* | |
local langpack=langpack-${language}@firefox.mozilla.org.xpi | |
if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then | |
rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack | |
ln -s $MOZ_LANGPACKS_DIR/$langpack \ | |
$MOZ_EXTENSIONS_PROFILE_DIR/$langpack | |
echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG | |
return 0 | |
fi | |
return 1 | |
} | |
create_langpack_link $SHORTMOZLOCALE || create_langpack_link $MOZLOCALE || true | |
fi | |
# BEAST fix (rhbz#838879) | |
NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} | |
export NSS_SSL_CBC_RANDOM_IV | |
# Prepare command line arguments | |
script_args="" | |
pass_arg_count=0 | |
while [ $# -gt $pass_arg_count ] | |
do | |
case "$1" in | |
-g | --debug) | |
script_args="$script_args -g" | |
debugging=1 | |
shift | |
;; | |
-d | --debugger) | |
if [ $# -gt 1 ]; then | |
script_args="$script_args -d $2" | |
shift 2 | |
else | |
shift | |
fi | |
;; | |
*) | |
# Move the unrecognized argument to the end of the list. | |
arg="$1" | |
shift | |
set -- "$@" "$arg" | |
pass_arg_count=`expr $pass_arg_count + 1` | |
;; | |
esac | |
done | |
# Run the browser | |
debugging=0 | |
if [ $debugging = 1 ] | |
then | |
echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" | |
fi | |
exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment