Bash issue
William Park
opengeometry-FFYn/CNdgSA at public.gmane.org
Fri Jul 30 19:53:08 UTC 2004
On Fri, Jul 30, 2004 at 02:40:43PM -0400, Gilles Fourchet wrote:
> Hi All,
>
> A couple of month ago, Jing published a script to run concurrent
> instances of Mozilla/Firefox. I am running Firefox 0.9.1 on Sarge and
> this script did not work well: it was able to start a new instance of
> Firefox only if one was already running.
>
> I found that it was because the mozilla-xremote-client version shipped
> with Firefox returned 0 to a successful ping (meaning if a client was
> already running).
>
> I tried to modified Jing's script to reflect that but, because I do not
> know Bash very well, my new script is not nice.
>
> Actually, in the script, the variable REMOTE is the program to be used
> for the ping. However, with this version of mozilla-xremote-client, you
> also have to specify what to ping with the option -a
> (mozilla-xremote-client -a firefox "ping()") knowing that you can ping
> Firefox, Thunderbird, Mozilla, or any.
>
> My problem is that I cannot put "mozilla-xremote-client -a firefox" in
> the REMOTE variable otherwise, when executed (`$REMOTE "ping()"`).
> Therefore, the only solution I found was to hard code the program with
> its path and options. Not good at all.
>
> Any trick?
>
> Thanks,
>
> Gilles
> #!/bin/sh
>
> TARGET=/usr/share/firefox_0.9.1/firefox
> #REMOTE="/usr/lib/mozilla/mozilla-xremote-client -a firefox"
> REMOTE="/usr/lib/mozilla/mozilla-xremote-client"
>
> if [ "$1" == "-remote" ]; then
> # calling program is smart enough to do it...
> exec $TARGET $*
>
> else
> # `$REMOTE "ping ()"`
> `/usr/share/firefox_0.9.1/mozilla-xremote-client -a firefox "ping ()"`
This
/usr/share/firefox_0.9.1/mozilla-xremote-client -a firefox "ping ()"
and
REMOTE="/usr/lib/mozilla/mozilla-xremote-client -a firefox"
$REMOTE "ping ()"
are identical.
Also, you don't need `...`
> if [ $? = 0 ] ; then
> echo "Already running ($?)"
> # there is already one running
>
> if [ -z "$1" ]; then
> exec $REMOTE "openURL("about:blank", new-window)"
>
> elif [ -f "$1" ]; then
> # okay, tedious work of trying to find the complete pathname
> # make two variables, trying to separate the path from file.
> file=`basename $1`
> path=${1%%${file}}
> if [ ! -d "$path" ]; then
> # try to fully expand the path
> path=`pwd $path`
'pwd' usually don't take argument. I don't think there is shell
wrapper for realpath(3).
> fi
> # okay, issue the command
> exec $REMOTE "openFile(file://$path/$file, new-tab)"
>
> else
> # "new-tab" feature for URLs is broken in current firefox
> #exec $REMOTE "openURL($1, new-tab)"
> # so what we do instead is always open a new window and then
> # open the URL
> $REMOTE "xfeDoCommand(openBrowser)"
> exec $REMOTE "openURL($1)"
>
> fi
> else
> # no mozilla currently running
> echo "Nothing running ($?)"
> exec $TARGET $* &
>
> fi
> fi
--
William Park, Open Geometry Consulting, <opengeometry-FFYn/CNdgSA at public.gmane.org>
Toronto, Ontario, Canada
--
The Toronto Linux Users Group. Meetings: http://tlug.ss.org
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://tlug.ss.org/subscribe.shtml
More information about the Legacy
mailing list