Age | Commit message (Collapse) | Author |
|
Set up CI to run tests.
|
|
Everything recently outstanding is complete.
|
|
Describe the package and include some examples.
|
|
|
|
|
|
|
|
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`.
|
|
|
|
Not to be confused with the previous `fmtBrowserCommand()` function,
this one handles all formatting including `%s`, shell escaping, etc.
|
|
Didn't like `escapeBrowserCommand()` either, since we're escaping the
URL not the rest of the command.
|
|
Formatting the browser command will incorporate more steps, not just
this one, so rename it to be more specific about what it's doing. I want
to use the other name for a different function.
|
|
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 reader in the
given browser.
Works by copying the `Reader`'s contents to a temporary file and opening
that with `OpenFile()`.
|
|
If the `BROWSER` environment variable is set, open the given file path
in the given browser.
|
|
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.
|
|
This will be used to extend `browser`'s functionality.
|