Use vendored go-swagger (#8087)
* Use vendored go-swagger * vendor go-swagger * revert un wanteed change * remove un-needed GO111MODULE * Update Makefile Co-Authored-By: techknowlogick <matti@mdranta.net>
This commit is contained in:
parent
4cb1bdddc8
commit
9fe4437bda
686 changed files with 143379 additions and 17 deletions
9
vendor/github.com/toqueteos/webbrowser/.travis.yml
generated
vendored
Normal file
9
vendor/github.com/toqueteos/webbrowser/.travis.yml
generated
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
language: go
|
||||
|
||||
go:
|
||||
- 1.2
|
||||
- 1.12
|
||||
- tip
|
||||
|
||||
script:
|
||||
- go build ./...
|
11
vendor/github.com/toqueteos/webbrowser/CONTRIBUTING.md
generated
vendored
Normal file
11
vendor/github.com/toqueteos/webbrowser/CONTRIBUTING.md
generated
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
# webbrowser contributing guide
|
||||
|
||||
Any changes are welcomed!
|
||||
|
||||
1. Be nice.
|
||||
2. Don't be afraid to ask, but please try search first.
|
||||
|
||||
## Looking for contact info?
|
||||
|
||||
- Twitter: [@toqueteos](https://twitter.com/toqueteos)
|
||||
- Mail: `toqueteos AT gmail DOT com`
|
19
vendor/github.com/toqueteos/webbrowser/LICENSE.md
generated
vendored
Normal file
19
vendor/github.com/toqueteos/webbrowser/LICENSE.md
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
The MIT License (MIT)
|
||||
Copyright (c) 2013-19 by Carlos Cobo and contributors.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
56
vendor/github.com/toqueteos/webbrowser/README.md
generated
vendored
Normal file
56
vendor/github.com/toqueteos/webbrowser/README.md
generated
vendored
Normal file
|
@ -0,0 +1,56 @@
|
|||
# webbrowser [](https://travis-ci.org/toqueteos/webbrowser) [](http://godoc.org/github.com/toqueteos/webbrowser) [](https://sourcegraph.com/github.com/toqueteos/webbrowser?badge)
|
||||
|
||||
webbrowser provides a simple API for opening web pages on your default browser.
|
||||
|
||||
It's inspired on [Python's webbrowser](http://docs.python.org/3/library/webbrowser.html) package but lacks some of its features (open new window).
|
||||
|
||||
It just opens a webpage, most browsers will open it on a new tab.
|
||||
|
||||
## Installation
|
||||
|
||||
As simple as:
|
||||
|
||||
```bash
|
||||
go get -u github.com/toqueteos/webbrowser
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import "github.com/toqueteos/webbrowser"
|
||||
|
||||
func main() {
|
||||
webbrowser.Open("http://golang.org")
|
||||
}
|
||||
```
|
||||
|
||||
That's it!
|
||||
|
||||
## Crossplatform support
|
||||
|
||||
The package works on:
|
||||
|
||||
- [x] `android` (verified by 3rd party)
|
||||
- [x] `darwin`
|
||||
- [x] `freebsd` (verified by 3rd party)
|
||||
- [x] `linux`
|
||||
- [x] `netbsd` (verified by 3rd party)
|
||||
- [x] `openbsd` (verified by 3rd party)
|
||||
- [x] `windows`
|
||||
|
||||
## License
|
||||
|
||||
It is licensed under the MIT open source license, please see the [LICENSE.md](https://github.com/toqueteos/webbrowser/blob/master/LICENSE.md) file for more information.
|
||||
|
||||
## Thanks...
|
||||
|
||||
Miki Tebeka wrote a nicer version that wasn't on godoc.org when I did this, [check it out!](https://bitbucket.org/tebeka/go-wise/src/d8db9bf5c4d1/desktop.go?at=default).
|
||||
|
||||
## Already disliking it?
|
||||
|
||||
No problem! There's alternative libraries that may be better to your needs:
|
||||
|
||||
- https://github.com/pkg/browser, it does what webbrowser does and more!
|
||||
- https://github.com/skratchdot/open-golang, it even provides a `xdg-open` implementation in case you don't have it!
|
3
vendor/github.com/toqueteos/webbrowser/go.mod
generated
vendored
Normal file
3
vendor/github.com/toqueteos/webbrowser/go.mod
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
module github.com/toqueteos/webbrowser
|
||||
|
||||
go 1.12
|
137
vendor/github.com/toqueteos/webbrowser/webbrowser.go
generated
vendored
Normal file
137
vendor/github.com/toqueteos/webbrowser/webbrowser.go
generated
vendored
Normal file
|
@ -0,0 +1,137 @@
|
|||
// Package webbrowser provides a simple API for opening web pages on your
|
||||
// default browser.
|
||||
package webbrowser
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/url"
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
ErrCantOpenBrowser = errors.New("webbrowser: can't open browser")
|
||||
ErrNoCandidates = errors.New("webbrowser: no browser candidate found for your OS")
|
||||
)
|
||||
|
||||
// Candidates contains a list of registered `Browser`s that will be tried with Open.
|
||||
var Candidates []Browser
|
||||
|
||||
type Browser interface {
|
||||
// Command returns a ready to be used Cmd that will open an URL.
|
||||
Command(string) (*exec.Cmd, error)
|
||||
// Open tries to open a URL in your default browser. NOTE: This may cause
|
||||
// your program to hang until the browser process is closed in some OSes,
|
||||
// see https://github.com/toqueteos/webbrowser/issues/4.
|
||||
Open(string) error
|
||||
}
|
||||
|
||||
// Open tries to open a URL in your default browser ensuring you have a display
|
||||
// set up and not running this from SSH. NOTE: This may cause your program to
|
||||
// hang until the browser process is closed in some OSes, see
|
||||
// https://github.com/toqueteos/webbrowser/issues/4.
|
||||
func Open(s string) (err error) {
|
||||
if len(Candidates) == 0 {
|
||||
return ErrNoCandidates
|
||||
}
|
||||
|
||||
// Try to determine if there's a display available (only linux) and we
|
||||
// aren't on a terminal (all but windows).
|
||||
switch runtime.GOOS {
|
||||
case "linux":
|
||||
// No display, no need to open a browser. Lynx users **MAY** have
|
||||
// something to say about this.
|
||||
if os.Getenv("DISPLAY") == "" {
|
||||
return fmt.Errorf("webbrowser: tried to open %q, no screen found", s)
|
||||
}
|
||||
fallthrough
|
||||
case "darwin":
|
||||
// Check SSH env vars.
|
||||
if os.Getenv("SSH_CLIENT") != "" || os.Getenv("SSH_TTY") != "" {
|
||||
return fmt.Errorf("webbrowser: tried to open %q, but you are running a shell session", s)
|
||||
}
|
||||
}
|
||||
|
||||
// Try all candidates
|
||||
for _, candidate := range Candidates {
|
||||
err := candidate.Open(s)
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
return ErrCantOpenBrowser
|
||||
}
|
||||
|
||||
func init() {
|
||||
// Register the default Browser for current OS, if it exists.
|
||||
if os, ok := osCommand[runtime.GOOS]; ok {
|
||||
Candidates = append(Candidates, browserCommand{os.cmd, os.args})
|
||||
}
|
||||
}
|
||||
|
||||
var (
|
||||
osCommand = map[string]*browserCommand{
|
||||
"android": &browserCommand{"xdg-open", nil},
|
||||
"darwin": &browserCommand{"open", nil},
|
||||
"freebsd": &browserCommand{"xdg-open", nil},
|
||||
"linux": &browserCommand{"xdg-open", nil},
|
||||
"netbsd": &browserCommand{"xdg-open", nil},
|
||||
"openbsd": &browserCommand{"xdg-open", nil}, // It may be open instead
|
||||
"windows": &browserCommand{"cmd", []string{"/c", "start"}},
|
||||
}
|
||||
winSchemes = [3]string{"https", "http", "file"}
|
||||
)
|
||||
|
||||
type browserCommand struct {
|
||||
cmd string
|
||||
args []string
|
||||
}
|
||||
|
||||
func (b browserCommand) Command(s string) (*exec.Cmd, error) {
|
||||
u, err := url.Parse(s)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
validUrl := ensureValidURL(u)
|
||||
|
||||
b.args = append(b.args, validUrl)
|
||||
|
||||
return exec.Command(b.cmd, b.args...), nil
|
||||
}
|
||||
|
||||
func (b browserCommand) Open(s string) error {
|
||||
cmd, err := b.Command(s)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
func ensureScheme(u *url.URL) {
|
||||
for _, s := range winSchemes {
|
||||
if u.Scheme == s {
|
||||
return
|
||||
}
|
||||
}
|
||||
u.Scheme = "http"
|
||||
}
|
||||
|
||||
func ensureValidURL(u *url.URL) string {
|
||||
// Enforce a scheme (windows requires scheme to be set to work properly).
|
||||
ensureScheme(u)
|
||||
s := u.String()
|
||||
|
||||
// Escape characters not allowed by cmd/bash
|
||||
switch runtime.GOOS {
|
||||
case "windows":
|
||||
s = strings.Replace(s, "&", `^&`, -1)
|
||||
}
|
||||
|
||||
return s
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue