#!/bin/sh plumbfirefox() { echo ' tell application "Firefox" activate tell application "System Events" tell process "firefox" keystroke "t" using {command down} end tell end tell Get URL "'$1'" end tell ' | osascript } plumbsafari() { echo ' tell application "Safari" activate tell application "System Events" tell process "safari" keystroke "t" using {command down} end tell end tell open location "'$1'" end tell ' | osascript } plumbcamino() { echo ' tell application "Camino" activate tell application "System Events" tell process "camino" keystroke "t" using {command down} end tell end tell Get URL "'$1'" end tell ' | osascript } plumbapple() { case ${BROWSER:-none} in firefox) plumbfirefox "$@" ;; safari) plumbsafari "$@" ;; camino) plumbcamino "$@" ;; none) if [ -d /Applications/Camino.app ] then plumbcamino "$@" elif [ -d /Applications/Firefox.app ] then plumbfirefox "$@" else plumbsafari "$@" fi ;; esac } plumbunix() { case "${BROWSER:=google-chrome}" in # Other browsers here # ... *google-chrome*) $BROWSER "$@" ;; *opera*) $BROWSER -remote 'openURL('"$@"',new-page)' ;; *firebird*) $BROWSER -remote 'openURL('"$@"',new-window)' ;; *firefox*) $BROWSER -remote 'openURL('"$@"',new-tab)' || $BROWSER "$@" ;; *mozilla*) $BROWSER -remote 'openURL('"$@"',new-tab)' || $BROWSER "$@" ;; esac } plumb1() { case `uname` in Darwin) plumbapple "$@" ;; *) plumbunix "$@" ;; esac } if [ $# = 0 ] then plumb1 about:blank else for i in "$@" do if [ -f "$i" ] then p=`pwd | sed 's/ /%20/g'` i=`echo $i | sed 's/ /%20/g'` i=`cleanname -d "$p" "$i"` i=file://$i else i=`echo $i | tr -d ' '` fi echo p "$i" plumb1 $i done fi case $BROWSER in *opera*) $BROWSER -remote 'raise()' esac