diff options
author | ZachIR <zachir@librem.one> | 2023-01-10 13:07:16 -0600 |
---|---|---|
committer | ZachIR <zachir@librem.one> | 2023-01-10 13:07:16 -0600 |
commit | 11af0127f2cec2590ca7e8c304bb499dbb133dbf (patch) | |
tree | 647b6cb18749ee51e19986078c9377fc3663c2a8 /url_handler.sh | |
parent | 0a67e22480a3be86c38ca6a63e9dd64e65d01c13 (diff) |
ignore companion bin; add modified url_handler script
Diffstat (limited to 'url_handler.sh')
-rwxr-xr-x | url_handler.sh | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/url_handler.sh b/url_handler.sh new file mode 100755 index 0000000..afb83d5 --- /dev/null +++ b/url_handler.sh @@ -0,0 +1,120 @@ +#! /bin/bash + +# Copyright (c) 1998 Martin Schulze <joey@debian.org> +# Slightly modified by Luis Francisco Gonzalez <luisgh@debian.org> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +########################################################################### +# Configurable section +########################################################################### +# +# Any entry in the lists of programs that urlview handler will try out will +# be made of /path/to/program + ':' + TAG where TAG is one of +# XW: XWindows program +# XT: Launch with an xterm if possible or as VT if not +# VT: Launch in the same terminal + +# The lists of programs to be executed are +https_prgs="/home/zachir/.local/bin/scripts/browser:XW /usr/bin/lynx:XT" +http_prgs="/usr/bin/lynx:XT /usr/X11R6/bin/netscape:XW" +mailto_prgs="/usr/bin/mutt:VT /usr/bin/elm:VT /usr/bin/pine:VT /usr/bin/mail:VT" +gopher_prgs="/usr/bin/lynx:XT /usr/bin/gopher:XT" +ftp_prgs="/usr/bin/lynx:XT /usr/bin/ncftp:XT" + +# Program used as an xterm (if it doesn't support -T you'll need to change +# the command line in getprg) +XTERM=/usr/X11R6/bin/xterm + + +########################################################################### +# Change bellow this at your own risk +########################################################################### +function getprg() +{ + local ele tag prog + + for ele in $* + do + tag=${ele##*:} + prog=${ele%%:*} + if [ -x $prog ]; then + case $tag in + XW) + [ -n "$DISPLAY" ] && echo "X:$prog" && return 0 + ;; + XT) + [ -n "$DISPLAY" ] && [ -x "$XTERM" ] && \ + echo "X:$XTERM -e $prog" && return 0 + echo "$prog" && return 0 + ;; + VT) + echo "$prog" && return 0 + ;; + esac + fi + done +} + +url="$1"; shift + +type="${url%%:*}" + +if [ "$url" = "$type" ]; then + type="${url%%.*}" + case "$type" in + www|web) + type=http + ;; + esac + url="$type://$url" +fi + +case $type in +https) + prg=`getprg $https_prgs` + ;; +http) + prg=`getprg $http_prgs` + ;; +ftp) + prg=`getprg $ftp_prgs` + ;; +mailto) + prg=`getprg $mailto_prgs` + url="${url#mailto:}" + ;; +gopher) + prg=`getprg $gopher_prgs` + ;; +*) + echo "Unknown URL type. Please report URL and viewer to:" + echo "joey@debian.org." + echo -n "Press enter to continue."; read x + exit + ;; +esac + +if [ -n "$prg" ]; then + if [ "${prg%:*}" = "X" ]; then + ${prg#*:} "$url" 2>/dev/null & + else + $prg "$url" + fi +fi + + + + |