]> git.pld-linux.org Git - packages/firefox.git/blob - mozilla-firefox.sh
- use exec as this program never returns when launching firefox
[packages/firefox.git] / mozilla-firefox.sh
1 #!/bin/sh
2 # based on script by (c) vip at linux.pl, wolf at pld-linux.org
3
4 if [ `arch` == "x86_64" ]; then
5         LIBDIR="/usr/lib64/mozilla-firefox"
6 else
7         LIBDIR="/usr/lib/mozilla-firefox"
8 fi
9
10 MOZILLA_FIVE_HOME=$LIBDIR
11
12 MOZLOCALE="$(/usr/bin/locale | grep "^LC_MESSAGES=" | \
13                 sed -e "s|LC_MESSAGES=||g" -e "s|\"||g" )"
14 for MOZLANG in $(echo $LANGUAGE | tr ":" " ") $MOZLOCALE; do
15         eval MOZLANG="$(echo $MOZLANG | sed -e "s|_\([^.]*\).*|-\1|g")"
16
17         if [ -f $MOZILLA_FIVE_HOME/chrome/$MOZLANG.jar ]; then
18                 MOZARGS="-UILocale $MOZLANG"
19                 break
20         fi
21 done
22
23 if [ -z "$MOZARGS" ]; then
24         # try harder
25         for MOZLANG in $(echo $LANGUAGE | tr ":" " ") $MOZLOCALE; do
26                 eval MOZLANG="$(echo $MOZLANG | sed -e "s|_.*||g")"
27
28                 LANGFILE=$(echo ${MOZILLA_FIVE_HOME}/chrome/${MOZLANG}*.jar \
29                                 | sed 's/\s.*//g' )
30                 if [ -f "$LANGFILE" ]; then
31                         MOZLANG=$(basename "$LANGFILE" | sed 's/\.jar//')
32                         MOZARGS="-UILocale $MOZLANG"
33                         break
34                 fi
35         done
36 fi
37
38 # compreg.dat and/or chrome.rdf will screw things up if it's from an
39 # older version.  http://bugs.gentoo.org/show_bug.cgi?id=63999
40 for f in ~/{.,.mozilla/}firefox/*/{compreg.dat,chrome.rdf,XUL.mfasl}; do
41         if [[ -f ${f} && ${f} -ot /usr/bin/mozilla-firefox ]]; then
42                 echo "Removing ${f} leftover from older firefox"
43                 rm -f "${f}"
44         fi
45 done
46
47 if [ -n "$MOZARGS" ]; then
48         FIREFOX="$LIBDIR/firefox $MOZARGS"
49 else
50         FIREFOX="$LIBDIR/firefox"
51 fi
52
53 if [ "$1" == "-remote" ]; then
54         exec $FIREFOX "$@"
55 else
56         PING=`$FIREFOX -remote 'ping()' 2>&1 >/dev/null`
57         if [ -n "$PING" ]; then
58                 if [ -f "`pwd`/$1" ]; then
59                         exec $FIREFOX "file://`pwd`/$1"
60                 else
61                         exec $FIREFOX "$@"
62                 fi
63         else
64                 if [ -z "$1" ]; then
65                         exec $FIREFOX -remote 'xfeDoCommand (openBrowser)'
66                 elif [ "$1" == "-mail" ]; then
67                         exec $FIREFOX -remote 'xfeDoCommand (openInbox)'
68                 elif [ "$1" == "-compose" ]; then
69                         exec $FIREFOX -remote 'xfeDoCommand (composeMessage)'
70                 else
71                         if [ -f "`pwd`/$1" ]; then
72                                 URL="file://`pwd`/$1"
73                         else
74                                 URL="$1"
75                         fi
76                         grep browser.tabs.opentabfor.middleclick ~/.mozilla/firefox/*/prefs.js | grep true > /dev/null
77                         if [ 0 -eq 0 ]; then
78                                 exec $FIREFOX -remote "OpenUrl($URL,new-tab)"
79                         else
80                                 exec $FIREFOX -remote "OpenUrl($URL,new-window)"
81                         fi
82                 fi
83         fi
84 fi
This page took 0.055152 seconds and 4 git commands to generate.