Age | Commit message (Collapse) | Author |
|
After reading the `urlview` man page, I learned that it supports
multiple commands in the `BROWSER` environment variable separated by
colons.
Read over the source to see what `urlview` does:
https://github.com/sigpipe/urlview/blob/08767aa863cd27d1755ba0aff65b8cc1a0c1446a/urlview.c#L617-L630
It tries each command from left to right until one of them exits with a
`0` exit code. Use the same logic here.
|
|
Use the global `Stdout` and `Stderr` variables when running the command
specified by `BROWSER`.
|
|
On Unix, we escape the URL argument by surrounding it with single
quotes. This fails if the URL contains single quotes. It also fails if
the `BROWSER` command contains `%s` not surrounded by single quotes.
Fix this by escaping the single quotes. We might also want to look into
passing the `BROWSER` command and arguments into `exec.Command` directly
instead of through `/bin/sh` and checking if that has an automatic
escaping mechanism we can take advantage of.
|
|
The `BROWSER` environment variable might contain a `%s` format string
that should be replaced by the URL to open. If it's present perform the
replacement. Otherwise, append the URL to the `BROWSER` command as
before.
|
|
So we can add other test cases.
|
|
If the `BROWSER` environment variable is set, open the given URL using
the command specified in the variable.
Run the command in a shell process, either from the `SHELL` environment
variable or `/bin/sh` on Unix OSes. Run it through `cmd` on Windows.
Essentially repurposes my code from
https://github.com/pkg/browser/pull/14.
|