Re: [PATCHv2 6/7] web--browse: use (x-)www-browser if available

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Dec 3, 2010 at 5:47 PM, Giuseppe Bilotta
<giuseppe.bilotta@xxxxxxxxx> wrote:
> Debian and derivatives have an alternatives-based default browser
> configuration that uses the /usr/bin/gnome-www-browser,
> /usr/bin/x-www-browser and /usr/bin/www-browser symlinks.
>
> When no browser is selected by the user and the Debian alternatives are
> available, try to see if they are one of our recognized selection and
> in the affermative case use it. Otherwise, warn the user about them
> being unsupported and move on with the previous detection logic.
>
> Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@xxxxxxxxx>
> ---
>  Documentation/git-web--browse.txt |    4 ++
>  git-web--browse.sh                |   59 +++++++++++++++++++++++++++++++++++--
>  2 files changed, 60 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/git-web--browse.txt b/Documentation/git-web--browse.txt
> index c0416e5..de034a5 100644
> --- a/Documentation/git-web--browse.txt
> +++ b/Documentation/git-web--browse.txt
> @@ -36,6 +36,10 @@ The following browsers (or commands) are currently supported:
>
>  Custom commands may also be specified.
>
> +If no default browser is specified, and /usr/bin/x-www-browser
> +(under X) or /usr/bin/www-browser is present, they are used to determine
> +the browser to use.

It looks like /usr/bin/gnome-www-browser is missing.

> +
>  OPTIONS
>  -------
>  -b <browser>::
> diff --git a/git-web--browse.sh b/git-web--browse.sh
> index d0e99f5..48ea168 100755
> --- a/git-web--browse.sh
> +++ b/git-web--browse.sh
> @@ -49,6 +49,38 @@ init_browser_path() {
>        test -z "$browser_path" && browser_path="$1"
>  }
>
> +# check if a given executable is a browser we like
> +valid_exe() {
> +       testexe="$1"
> +       basename=$(basename $(readlink -f "$testexe"))
> +       if valid_tool "$basename" ; then
> +               browser="$basename"
> +               browser_path="$testexe"
> +               return 0
> +       fi
> +
> +       # if the linked executable doesn't match a browser name,
> +       # look at the version string
> +       verstring="$("$testexe" --version 2> /dev/null)"
> +       browser="$(echo "$verstring" | head -n 1 | cut -f1 -d' ' | tr A-Z a-z)"
> +       case "$browser" in
> +               mozilla)
> +                       browser="$(echo "$verstring" | head -n 1 | cut -f2 -d' ' | tr A-Z a-z)"
> +                       ;;
> +               google)
> +                       browser="google-chrome"
> +                       ;;
> +       esac
> +       if valid_tool "$browser" ; then
> +               browser_path="$i"
> +               return 0
> +       fi
> +
> +       echo >&2 "$basename ($browser) is not a supported browser, skipping"

Why not:

echo >&2 "$basename (from $testexe) is not a supported browser, skipping"

?

Otherwise we might get something like:

"newbrowser (newbrowser) is not a supported browser, skipping"

> +       browser=""
> +       return 1
> +}
> +
>  while test $# != 0
>  do
>        case "$1" in
> @@ -106,6 +138,26 @@ then
>        fi
>  fi
>
> +# Debian and derivatives use gnome-www-browser, x-www-browser or www-browser to
> +# set the default browser for the system. If the user did not specify a tool and
> +# we detect that one of the *www-browser links to a supported one, we pick it.
> +# Otherwise, we warn the user about them being unsupported and proceed to look
> +# for a supported browser.
> +if test -z "$browser" ; then
> +       wwwbrowser="/usr/bin/www-browser"
> +       if test -n "$DISPLAY"; then
> +               wwwbrowser="/usr/bin/x-www-browser $wwwbrowser"
> +               if test -n "$GNOME_DESKTOP_SESSION_ID"; then
> +                       wwwbrowser="/usr/bin/gnome-www-browser $wwwbrowser"
> +               fi
> +       fi
> +       for i in $wwwbrowser; do
> +               if test -x $i && valid_exe $i ; then
> +                       break
> +               fi
> +       done
> +fi
> +
>  if test -z "$browser" ; then
>        if test -n "$DISPLAY"; then
>                browser_candidates="firefox iceweasel google-chrome chrome chromium chromium-browser konqueror opera seamonkey iceape w3m elinks links lynx dillo"
> @@ -133,7 +185,7 @@ if test -z "$browser" ; then
>                fi
>        done
>        test -z "$browser" && die "No known browser available."
> -else
> +else if test -z "$browser_path"; then

Now that you reset $browser above, I am not sure this test -z
"$browser_path" is useful...

Thanks,
Christian.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]