git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date
Nov 30, 2010, 08:22 UTC
Message-ID
<AANLkTik-OKsUK2aJCDR0Q-FyQM=rrFQmx=Hwdyr5NzYt@mail.gmail.com>
In-Reply-To
<AANLkTik9R2dRDDBUHBZ_OKPKto0wDAxr1V0uL=q4bU+4@mail.gmail.com>

On Tue, Nov 30, 2010 at 5:02 AM, Christian Couder <christian.couder@gmail.com> wrote:

Show 47 quoted lines
> On Mon, Nov 29, 2010 at 8:05 PM, Giuseppe Bilotta
> <giuseppe.bilotta@gmail.com> wrote:
>> On Mon, Nov 29, 2010 at 5:18 PM, Christian Couder
>> <christian.couder@gmail.com> wrote:
>>> Hi,
>>>
>>> On Mon, Nov 29, 2010 at 3:47 PM, Giuseppe Bilotta
>>> <giuseppe.bilotta@gmail.com> wrote:
>>>>
>>>> +# Debian and derivatives use x-www-browser or www-browser to set
>>>> +# the default browser for the system
>>>> +if test -z "$browser" ; then
>>>> +       wwwbrowser="/usr/bin/www-browser"
>>>> +       if test -n "$DISPLAY"; then
>>>> +               wwwbrowser="/usr/bin/x-www-browser $wwwbrowser"
>>>> +       fi
>>>> +       for i in $wwwbrowser; do
>>>> +               if test -x $i ; then
>>>> +                       verstring="$($i --version 2> /dev/null | head -n 1)"
>>>> +                       browser="$(echo "$verstring" | cut -f1 -d' ' | tr A-Z a-z)"
>>>
>>> Stupid questions:
>>>
>>> Did you check that all the browser we support accept the --version option?
>>
>> I don't have all of them readily available, so I checked with
>> Mozilla-based browsers, Opera, Chromium, elinks, lynx, w3m. I'm
>> missing konqueror and dillo.
>>
>>> What if we add support for a new one that doesn't ?
>>
>> I think that the worse issue would be (x-)www-browser linking to
>> something that doesn't support --version regardless of wether we
>> support it or not.
>>
>>> Shouldn't we add something like :
>>>
>>> test -z "$browser" && browser="$(readlink $i)"
>>
>> My first idea was to go for something like browser="$(basename
>> $(readlink $i))" (not sure why you would need test -z before).
>
> We would need "test -z" before if we add it after:
>
> browser="$(echo "$verstring" | cut -f1 -d' ' | tr A-Z a-z)"
>
> so that we have a fallback if it doesn't support "--version".

Oh, I see what you mean here. I thought you wanted to use it as an alternative to the --version.

Show 7 quoted lines
>> We allow valid_tool to be false in the x-www-browser case, in which
>> case we test www-browser, and if it's still not valid we go on and use
>> the previous paths. So we cannot die in case of an invalid
>> (x-)www-browser.
>
> Yeah, you are right, but we could die after the "for i in $wwwbrowser"
> loop if both are invalid.

Why? If both are invalid, proceeding with the previous strategy of looking for a browser we _should_ be looking for any browser we know about, even if it's not set as the default system browser.

Show 8 quoted lines
>> But there's a bug in the www-brower testing, it needs
>> an else that resets browser to the empty string.
>
> I thought it was by design that you did not reset it...
> So yeah it is clearer and nicer for the user if you either reset
> browser or just die if both (x-)www-browser are invalid. If you decide
> to reset browser, perhaps a warning or an information message telling
> that both are unknown would be nice.

I can do that. Should it be a warning about reporting the lack of support to us, or just a warning that we are not going to use it even if it's defined?

While we're at it: I was considering adding support for the BROWSER env var (a colon-separated list of browsers executables or "browser %s" strings).

All of this is going to make the web--browse script very similar to the sensible-browser script in Debian, with the difference that we go at length to ensure that stuff is opened in a new tab, whereas Debian's sensible-browser doesn't. Should we just support sensible-browser instead of (x-)www-browser/BROWSER, and let it open anything?

-- 
Giuseppe "Oblomov" Bilotta
Previous: Christian CouderNext: Christian Couder
Message 16 of 22 in “web--browse cleanups and extensions”
  1. 0/6 web--browse cleanups and extensionsGiuseppe Bilotta, Nov 29, 2010
  2. 1/6 CodingGuidelines: mention whitespace preferences for shell scriptsGiuseppe Bilotta, Nov 29, 2010
  3. Junio C HamanoNov 30, 2010
  4. Giuseppe BilottaNov 30, 2010
  5. 2/6 web--browse: coding styleGiuseppe Bilotta, Nov 29, 2010
  6. 3/6 web--browse: split valid_tool listGiuseppe Bilotta, Nov 29, 2010
  7. Jonathan NiederNov 29, 2010
  8. Giuseppe BilottaNov 29, 2010
  9. Junio C HamanoNov 29, 2010
  10. 4/6 web--browse: support opera, seamonkey and elinksGiuseppe Bilotta, Nov 29, 2010
  11. 5/6 web--browse: use (x-)www-browser if availableGiuseppe Bilotta, Nov 29, 2010
  12. Christian CouderNov 29, 2010
  13. Christian CouderNov 29, 2010
  14. Giuseppe BilottaNov 29, 2010
  15. Christian CouderNov 30, 2010
  16. Giuseppe BilottaNov 30, 2010
  17. Christian CouderDec 1, 2010
  18. Giuseppe BilottaDec 1, 2010
  19. Jonathan NiederDec 1, 2010
  20. Jonathan NiederNov 29, 2010
  21. Giuseppe BilottaNov 29, 2010
  22. 6/6 web--browse: special-case chromium pathGiuseppe Bilotta, Nov 29, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.