99 lines
2.9 KiB
Bash
Executable File
99 lines
2.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# This script loads a web page in the 'default' graphical web browser.
|
|
# It MUST return immediately (or soon), so the browser should be
|
|
# launched in the background (thus no text-only browsers).
|
|
# This script does not trust the URL to be well-escaped or shell-safe.
|
|
#
|
|
# On Unixoids we try, in order of decreasing priority:
|
|
# - $BROWSER if set (preferred)
|
|
# - Default GNOME browser
|
|
# - Default KDE browser
|
|
# - x-www-browser
|
|
# - The first browser in $BROWSER_COMMANDS that is found.
|
|
|
|
URL="$1"
|
|
|
|
if [ -z "$URL" ]; then
|
|
echo "Usage: $(basename "$0") URL"
|
|
exit
|
|
fi
|
|
|
|
# restore LD_LIBRARY_PATH from SAVED_LD_LIBRARY_PATH if it exists
|
|
if [ "${SAVED_LD_LIBRARY_PATH+isset}" = "isset" ]; then
|
|
export LD_LIBRARY_PATH="${SAVED_LD_LIBRARY_PATH}"
|
|
echo "$0: Restored library path to '${SAVED_LD_LIBRARY_PATH}'"
|
|
fi
|
|
|
|
# if $BROWSER is defined, use it.
|
|
XBROWSER=`echo "$BROWSER" |cut -f1 -d:`
|
|
if [ ! -z "$XBROWSER" ]; then
|
|
XBROWSER_CMD=`echo "$XBROWSER" |cut -f1 -d' '`
|
|
# look for $XBROWSER_CMD either literally or in PATH
|
|
if [ -x "$XBROWSER_CMD" ] || which $XBROWSER_CMD >/dev/null; then
|
|
# check for %s string, avoiding bash2-ism of [[ ]]
|
|
if echo "$XBROWSER" | grep %s >/dev/null; then
|
|
# $XBROWSER has %s which needs substituting
|
|
echo "$URL" | xargs -r -i%s $XBROWSER &
|
|
exit
|
|
fi
|
|
# $XBROWSER has no %s, tack URL on the end instead
|
|
$XBROWSER "$URL" &
|
|
exit
|
|
fi
|
|
echo "$0: Couldn't find the browser specified by \$BROWSER ($BROWSER)"
|
|
echo "$0: Trying some others..."
|
|
fi
|
|
|
|
# Launcher for any desktop.
|
|
if which xdg-open >/dev/null; then
|
|
xdg-open "$URL"
|
|
case $? in
|
|
0) exit ;;
|
|
1) echo "xdg-open: Error in command line syntax." ;;
|
|
2) echo "xdg-open: One of the files passed on the command line did not exist." ;;
|
|
3) echo "xdg-open: A required tool could not be found." ;;
|
|
4) echo "xdg-open: The action failed." ;;
|
|
esac
|
|
fi
|
|
|
|
# Launcher the default GNOME browser.
|
|
if [ ! -z "$GNOME_DESKTOP_SESSION_ID" ] && which gnome-open >/dev/null; then
|
|
gnome-open "$URL" &
|
|
exit
|
|
fi
|
|
|
|
# Launch the default KDE browser.
|
|
if [ ! -z "$KDE_FULL_SESSION" ] && which kfmclient >/dev/null; then
|
|
kfmclient openURL "$URL" &
|
|
exit
|
|
fi
|
|
|
|
# List of browser commands that will be tried in the order listed. x-www-browser
|
|
# will be tried first, which is a debian alternative.
|
|
BROWSER_COMMANDS=" \
|
|
x-www-browser \
|
|
firefox \
|
|
mozilla-firefox \
|
|
iceweasel \
|
|
iceape \
|
|
opera \
|
|
epiphany-browser \
|
|
epiphany-gecko \
|
|
epiphany-webkit \
|
|
epiphany \
|
|
mozilla \
|
|
seamonkey \
|
|
galeon \
|
|
dillo \
|
|
netscape"
|
|
for browser_cmd in $BROWSER_COMMANDS; do
|
|
if which $browser_cmd >/dev/null; then
|
|
$browser_cmd "$URL" &
|
|
exit
|
|
fi
|
|
done
|
|
|
|
echo '$0: Failed to find a known browser. Please consider setting the $BROWSER environment variable.'
|
|
exit 1
|