Age | Commit message (Collapse) | Author |
|
|
|
We need to connect our `Stderr` and `Stdout` to those in
`github.com/pkg/browser` so that custom writers get linked correctly in
the underlying library.
Previously, customising these writers only worked for the command
specified in the `BROWSER` environment variable, not when `BROWSER` was
unset.
|
|
The `BROWSER` environment variable value is carried over after each
test, meaning if subsequent tests depend on it being undefined, they
will fail. Unset the environment variable at the end of each test that
sets it.
|
|
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.
|