#! /bin/sh
#
# example of how to call the appropriate viewer
# based on a script by Michael Elkins <[email protected]>
# 2001-01-31 <[email protected]>
#
# URLs must start with a scheme and shell metas must be already quoted
# (tin doesn't recognize URLs without a scheme and it quotes the metas)
#
# TODO: check $BROWSER?

if test $# -ne 1; then
       echo "Usage: `basename "$0"` URL" >&2
       exit 1
fi

url="$1"
method=`echo "$url" | sed 's,^\([^:]*\):.*,\1,' | tr 'A-Z' 'a-z'`

case "$method" in
       http|https|gopher)
               if test x"$DISPLAY" = x; then
                       lynx "$url" || exit 1
               else
                       ( netscape -remote openURL\("$url"\) || netscape "$url" ) || exit 1
               fi
               ;;

       ftp)
               if test x"$DISPLAY" = x; then
                       target=`echo "$url" | sed 's;^.*://\([^/]*\)/*\(.*\);\1:/\2;'`
                       ( ncftp "$target" || ncftp "$target""/" ) || exit 1
               else
                       ( netscape -remote openURL\("$url"\) || netscape "$url" ) || exit 1
               fi
               ;;

       mailto)
               ( mutt "$url" ) || exit 1
               # ( pine -url "$url" ) || exit 1
#               # old mutts can't handle mailto:-URLs with embedet subject
#               if test `echo "$url" | grep -c '\?'` -eq 0 ; then
#                       ( mutt `echo "$url" | sed 's;^[^:]*:\(.*\);\1;'` ) || exit 1
#               else
#                       if test x"$DISPLAY" = x; then
#                               lynx "$url" || exit 1
#                       else
#                               ( netscape -remote openURL\("$url"\) || netscape "$url" ) || exit 1
#                       fi
#               fi
               ;;

       news|snews)
               # usually meant for reading news on the local server
               if test x"$DISPLAY" = x; then
                       lynx "$url" || exit 1
               else
                       ( netscape -remote openURL\("$url"\) || netscape "$url" ) || exit 1
               fi
               ;;

       nntp)
               # usually meant for reading news via NNTP
               # needs a special case as netscape can't handle nntp-URLs
               # *sigh*
               lynx "$url" || exit 1
               ;;

esac

exit 0