diff options
author | knu <knu@FreeBSD.org> | 2000-05-09 03:02:55 +0800 |
---|---|---|
committer | knu <knu@FreeBSD.org> | 2000-05-09 03:02:55 +0800 |
commit | 251ba3936497784ff97a346a7c76535351ea537b (patch) | |
tree | db9287c9c29947bfa4daaaf3c53c9194695603db /www/netscape-wrapper | |
parent | 9bee617a1010aa8b7af9cf513e8d1b8cdcb3e24b (diff) | |
download | freebsd-ports-gnome-251ba3936497784ff97a346a7c76535351ea537b.tar.gz freebsd-ports-gnome-251ba3936497784ff97a346a7c76535351ea537b.tar.zst freebsd-ports-gnome-251ba3936497784ff97a346a7c76535351ea537b.zip |
This is a new wrapper for netscape 4.x, which utilizes netscape's
remote control method on demand.
That means, invoking netscape when it's already running will just open
a new window without a 'lock file exists' alert. :)
Do not install this port if you already have a netscape installed,
or you will get ${PREFIX}/bin/netscape overwritten! Try reinstalling
the netscape port after the following commit of mine.
Obtained from: RedHat Linux
Diffstat (limited to 'www/netscape-wrapper')
-rw-r--r-- | www/netscape-wrapper/Makefile | 24 | ||||
-rw-r--r-- | www/netscape-wrapper/files/netscape.sh | 168 | ||||
-rw-r--r-- | www/netscape-wrapper/pkg-comment | 1 | ||||
-rw-r--r-- | www/netscape-wrapper/pkg-descr | 13 | ||||
-rw-r--r-- | www/netscape-wrapper/pkg-plist | 1 |
5 files changed, 207 insertions, 0 deletions
diff --git a/www/netscape-wrapper/Makefile b/www/netscape-wrapper/Makefile new file mode 100644 index 000000000000..a023ec9ec946 --- /dev/null +++ b/www/netscape-wrapper/Makefile @@ -0,0 +1,24 @@ +# New ports collection makefile for: netscape-wrapper +# Date created: 3 May 2000 +# Whom: Akinori MUSHA aka knu <knu@idaemons.org> +# +# $FreeBSD$ +# + +PORTNAME= netscape-wrapper +PORTVERSION= 2000.05.07 +CATEGORIES= www +MASTER_SITES= # none +DISTFILES= # none + +MAINTAINER= knu@FreeBSD.org + +RUN_DEPENDS= netscape-remote:${PORTSDIR}/www/netscape-remote + +NO_WRKSUBDIR= yes +NO_BUILD= yes + +do-install: + ${INSTALL_SCRIPT} ${FILESDIR}/netscape.sh ${PREFIX}/bin/netscape + +.include <bsd.port.mk> diff --git a/www/netscape-wrapper/files/netscape.sh b/www/netscape-wrapper/files/netscape.sh new file mode 100644 index 000000000000..db9d3e38dac3 --- /dev/null +++ b/www/netscape-wrapper/files/netscape.sh @@ -0,0 +1,168 @@ +#!/bin/sh +# +# Netscape Wrapper +# (c) 1998,1999 Dave Cinege, H. Peter Anvin, and Red Hat, Inc. +# 2000 Akinori MUSHA <knu@FreeBSD.org>, modified for FreeBSD. +# +# $FreeBSD$ +# + +prefix=$(dirname $(dirname $0)) + +lockfile=$HOME/.netscape/lock +defs="-irix-session-management" +defsrem="-irix-session-management -noraise -remote" +b_opt="openBrowser" + +netscape=$prefix/bin/netscape.run + +if [ -x $prefix/bin/netscape-remote ]; then + netscape_remote=$prefix/bin/netscape-remote +else + netscape_remote=$netscape +fi + +netscape_bin="" + +for f in $prefix/lib/netscape*/*.bin +do + if [ -x $f ]; then + netscape_bin=$f + break + fi +done + +if [ "$netscape_bin" = "" ]; then + echo "You don't seem to have netscape installed." + exit 1 +fi + +export TZ=:/etc/localtime + +# Exterminate zombie netscapes, and wipe stale lock file. +killstale () { + whoami=`whoami` + + ps uw | while read user pid pcpu pmem vsz rss tt stat started time command args + do + [ "$user" != "$whoami" -o "$command" != "$netscape_bin" ] && continue + + { kill -INT $pid && kill -QUIT $pid && kill -TERM $pid && \ + sleep 2 && kill -KILL $pid ; } >/dev/null 2>&1 + done + + [ -L $lockfile ] && rm $lockfile + + return 0 +} + +# Try calling existing netscape process with functions, else start one. +newbrowser () { + [ $# -gt 0 ] && url=`echo $@ | sed 's/\ -[^ ]*//g; s/\( | \)*//'` + if [ -L $lockfile ]; then + if [ "$url" = "" ]; then + $netscape_remote $defsrem "xfeDoCommand($b_opt)" "$@" 2>/dev/null || \ + { killstale && exec $netscape $defs $cl_opt "$@" ; } + else + $netscape_remote $defsrem "openURL($url, new-window)" 2>/dev/null || \ + { killstale && exec $netscape $defs "$@" ; } + fi + else + if [ "$url" = "" ]; then + [ ${rerun:=0} -eq 1 ] && { sleep 3; $netscape_remote $defsrem "xfeDoCommand($b_opt)" '$@' 2>/dev/null ; } & + exec $netscape $defs $cl_opt "$@" + else + exec $netscape $defs "$@" + fi + fi +} + +newopt () { + opt="$1" + shift + + case "$opt" in + "+news"|"+discussions") b_opt="openNewsgroups" ; cl_opt="-discussions" ;; + "+mail"|"+messenger") b_opt="openInbox" ; cl_opt="-messenger" ;; + "+edit"|"+composer") b_opt="openEditor" ; cl_opt="-composer" ;; + "+addr"|"+addresses") b_opt="openAddrBook" ; cl_opt="-messenger -iconic" ; rerun=1 ;; + "+hist"|"+history") b_opt="openHistory" ; cl_opt="-iconic" ; rerun=1 ;; + "+book"|"+bookmarks") b_opt="openBookmarks" ; cl_opt="-iconic" ; rerun=1 ;; + "+mailto") b_opt="composeMessage" ; cl_opt="-messenger -iconic" ; rerun=1 ;; + "+component-bar") b_opt="toggleTaskbar" ; cl_opt="-component-bar";; + esac + + newbrowser "$@" +} + +oldopt () { + exec $netscape $defs "$@" +} + +usage () { + echo "" + echo "Netscape Wrapper" + echo " (c) 1998,1999 Dave Cinege, H. Peter Anvin, and Red Hat, Inc." + echo " 2000 Akinori MUSHA <knu@FreeBSD.org>, modified for FreeBSD." + echo "" + echo "usage: netscape [ option ]" + echo " options:" + echo "" + echo " [none] Open new browser" + echo " [URL] Open new browser with URL" + echo " +news | +discussions Show Collabra Discussions" + echo " +mail | +messenger Show Messenger Mailbox (INBOX)" + echo " +edit | +composer Open Composer" + echo " +addr | +addresses Show Address Book" + echo " +hist | +history Open History window" + echo " +book | +bookmarks Open Bookmarks windowsBook" + echo " +mailto Open New Message window" + echo " +component-bar Show (detach) Component Lauch Bar" + echo " -[option] Passed directly to Netscape binary" + echo "" + echo "The wrapper first attempts to open the option in a running" + echo "netscape. If no netscape is running, one is executed with" + echo "the option as the starting window." + echo "" + echo "Edit the top of this file to set default paths." + echo "" + echo "" + echo "Netscape binary help:" + echo "" + exec $netscape "-help" +} + +# +# Fix "locale" problems when printing to postscript +# +# If the locale uses a decimal separator other than a point printf +# will return something other than 1.0 +# + +pnt=`printf "%1.1f" 1 2>/dev/null` +if [ "$pnt" != "1.0" ]; then + export LC_NUMERIC=C # Try a "safe" value for LC_NUMERIC. + + pnt=`printf "%1.1f" 1 2>/dev/null` + if [ "$pnt" != "1.0" ]; then # LC_ALL is bad. + LC_COLLATE=$LC_ALL # Set $LC_ALL for every category except + LC_CTYPE=$LC_ALL # LC_NUMERIC, and then unset LC_ALL. + LC_MESSAGES=$LC_ALL + LC_MONETARY=$LC_ALL + LC_TIME=$LC_ALL + unset LC_ALL + export LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_CTIME + fi +fi + + +# main + +case "$1" in + -h|-help|--help) usage; exit ;; + +*) newopt "$@"; exit ;; + -*) oldopt "$@"; exit ;; + *) newbrowser "$@"; exit ;; +esac + +echo "An error occurred running $netscape." diff --git a/www/netscape-wrapper/pkg-comment b/www/netscape-wrapper/pkg-comment new file mode 100644 index 000000000000..f279514425b1 --- /dev/null +++ b/www/netscape-wrapper/pkg-comment @@ -0,0 +1 @@ +Netscape wrapper to avoid multiple invocation and more diff --git a/www/netscape-wrapper/pkg-descr b/www/netscape-wrapper/pkg-descr new file mode 100644 index 000000000000..284a082e5fbf --- /dev/null +++ b/www/netscape-wrapper/pkg-descr @@ -0,0 +1,13 @@ +Netscape Wrapper + (c) 1998,1999 Dave Cinege, H. Peter Anvin, and Red Hat, Inc. + 2000 Akinori MUSHA <knu@FreeBSD.org>, modified for FreeBSD. + +This wrapper first attempts to open the option in a running +netscape. If no netscape is running, one is executed with the option +as the starting window. + +The command line options are extended to allow opening New Messages +window, Messenger Mailbox, Collabra Disscussions, Composer, and so on. + +-- +Akinori MUSHA <knu@FreeBSD.org> diff --git a/www/netscape-wrapper/pkg-plist b/www/netscape-wrapper/pkg-plist new file mode 100644 index 000000000000..c5bc755e5588 --- /dev/null +++ b/www/netscape-wrapper/pkg-plist @@ -0,0 +1 @@ +bin/netscape |