forked from forgejo/forgejo
Update src-d/go-git to v4.13.0 (#7688)
* update gopkg.in/src-d/go-git.v4 v4.13.0 * mod tidy * vendor
This commit is contained in:
parent
bb875e98a1
commit
a9b4c8171f
131 changed files with 3148 additions and 406 deletions
1
vendor/github.com/kevinburke/ssh_config/.gitignore
generated
vendored
1
vendor/github.com/kevinburke/ssh_config/.gitignore
generated
vendored
|
@ -1 +0,0 @@
|
|||
/bazel-*
|
1
vendor/github.com/kevinburke/ssh_config/.mailmap
generated
vendored
Normal file
1
vendor/github.com/kevinburke/ssh_config/.mailmap
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
Kevin Burke <kevin@burke.dev> Kevin Burke <kev@inburke.com>
|
3
vendor/github.com/kevinburke/ssh_config/.travis.yml
generated
vendored
3
vendor/github.com/kevinburke/ssh_config/.travis.yml
generated
vendored
|
@ -3,9 +3,8 @@ go_import_path: github.com/kevinburke/ssh_config
|
|||
language: go
|
||||
|
||||
go:
|
||||
- 1.9.x
|
||||
- 1.10.x
|
||||
- 1.11.x
|
||||
- 1.12.x
|
||||
- master
|
||||
|
||||
before_script:
|
||||
|
|
3
vendor/github.com/kevinburke/ssh_config/AUTHORS.txt
generated
vendored
3
vendor/github.com/kevinburke/ssh_config/AUTHORS.txt
generated
vendored
|
@ -1,4 +1,5 @@
|
|||
Eugene Terentev <eugene@terentev.net>
|
||||
Kevin Burke <kev@inburke.com>
|
||||
Kevin Burke <kevin@burke.dev>
|
||||
Mark Nevill <nev@improbable.io>
|
||||
Sergey Lukjanov <me@slukjanov.name>
|
||||
Wayne Ashley Berry <wayneashleyberry@gmail.com>
|
||||
|
|
12
vendor/github.com/kevinburke/ssh_config/Makefile
generated
vendored
12
vendor/github.com/kevinburke/ssh_config/Makefile
generated
vendored
|
@ -1,15 +1,13 @@
|
|||
BUMP_VERSION := $(GOPATH)/bin/bump_version
|
||||
MEGACHECK := $(GOPATH)/bin/megacheck
|
||||
STATICCHECK := $(GOPATH)/bin/staticcheck
|
||||
WRITE_MAILMAP := $(GOPATH)/bin/write_mailmap
|
||||
|
||||
IGNORES := 'github.com/kevinburke/ssh_config/config.go:U1000 github.com/kevinburke/ssh_config/config.go:S1002 github.com/kevinburke/ssh_config/token.go:U1000'
|
||||
$(STATICCHECK):
|
||||
go get honnef.co/go/tools/cmd/staticcheck
|
||||
|
||||
$(MEGACHECK):
|
||||
go get honnef.co/go/tools/cmd/megacheck
|
||||
|
||||
lint: $(MEGACHECK)
|
||||
lint: $(STATICCHECK)
|
||||
go vet ./...
|
||||
$(MEGACHECK) --ignore=$(IGNORES) ./...
|
||||
$(STATICCHECK)
|
||||
|
||||
test: lint
|
||||
@# the timeout helps guard against infinite recursion
|
||||
|
|
40
vendor/github.com/kevinburke/ssh_config/config.go
generated
vendored
40
vendor/github.com/kevinburke/ssh_config/config.go
generated
vendored
|
@ -34,6 +34,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
osuser "os/user"
|
||||
"path/filepath"
|
||||
|
@ -43,7 +44,9 @@ import (
|
|||
"sync"
|
||||
)
|
||||
|
||||
const version = "0.5"
|
||||
const version = "1.0"
|
||||
|
||||
var _ = version
|
||||
|
||||
type configFinder func() string
|
||||
|
||||
|
@ -156,6 +159,7 @@ func (u *UserSettings) GetStrict(alias, key string) (string, error) {
|
|||
}
|
||||
var err error
|
||||
u.userConfig, err = parseFile(filename)
|
||||
//lint:ignore S1002 I prefer it this way
|
||||
if err != nil && os.IsNotExist(err) == false {
|
||||
u.onceErr = err
|
||||
return
|
||||
|
@ -166,11 +170,13 @@ func (u *UserSettings) GetStrict(alias, key string) (string, error) {
|
|||
filename = u.systemConfigFinder()
|
||||
}
|
||||
u.systemConfig, err = parseFile(filename)
|
||||
//lint:ignore S1002 I prefer it this way
|
||||
if err != nil && os.IsNotExist(err) == false {
|
||||
u.onceErr = err
|
||||
return
|
||||
}
|
||||
})
|
||||
//lint:ignore S1002 I prefer it this way
|
||||
if u.onceErr != nil && u.IgnoreErrors == false {
|
||||
return "", u.onceErr
|
||||
}
|
||||
|
@ -190,26 +196,29 @@ func parseFile(filename string) (*Config, error) {
|
|||
}
|
||||
|
||||
func parseWithDepth(filename string, depth uint8) (*Config, error) {
|
||||
f, err := os.Open(filename)
|
||||
b, err := ioutil.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer f.Close()
|
||||
return decode(f, isSystem(filename), depth)
|
||||
return decodeBytes(b, isSystem(filename), depth)
|
||||
}
|
||||
|
||||
func isSystem(filename string) bool {
|
||||
// TODO i'm not sure this is the best way to detect a system repo
|
||||
// TODO: not sure this is the best way to detect a system repo
|
||||
return strings.HasPrefix(filepath.Clean(filename), "/etc/ssh")
|
||||
}
|
||||
|
||||
// Decode reads r into a Config, or returns an error if r could not be parsed as
|
||||
// an SSH config file.
|
||||
func Decode(r io.Reader) (*Config, error) {
|
||||
return decode(r, false, 0)
|
||||
b, err := ioutil.ReadAll(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return decodeBytes(b, false, 0)
|
||||
}
|
||||
|
||||
func decode(r io.Reader, system bool, depth uint8) (c *Config, err error) {
|
||||
func decodeBytes(b []byte, system bool, depth uint8) (c *Config, err error) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
if _, ok := r.(runtime.Error); ok {
|
||||
|
@ -223,7 +232,7 @@ func decode(r io.Reader, system bool, depth uint8) (c *Config, err error) {
|
|||
}
|
||||
}()
|
||||
|
||||
c = parseSSH(lexSSH(r), system, depth)
|
||||
c = parseSSH(lexSSH(b), system, depth)
|
||||
return c, err
|
||||
}
|
||||
|
||||
|
@ -367,7 +376,7 @@ type Host struct {
|
|||
// EOLComment is the comment (if any) terminating the Host line.
|
||||
EOLComment string
|
||||
hasEquals bool
|
||||
leadingSpace uint16 // TODO: handle spaces vs tabs here.
|
||||
leadingSpace int // TODO: handle spaces vs tabs here.
|
||||
// The file starts with an implicit "Host *" declaration.
|
||||
implicit bool
|
||||
}
|
||||
|
@ -379,7 +388,7 @@ func (h *Host) Matches(alias string) bool {
|
|||
found := false
|
||||
for i := range h.Patterns {
|
||||
if h.Patterns[i].regex.MatchString(alias) {
|
||||
if h.Patterns[i].not == true {
|
||||
if h.Patterns[i].not {
|
||||
// Negated match. "A pattern entry may be negated by prefixing
|
||||
// it with an exclamation mark (`!'). If a negated entry is
|
||||
// matched, then the Host entry is ignored, regardless of
|
||||
|
@ -398,6 +407,7 @@ func (h *Host) Matches(alias string) bool {
|
|||
// present in the whitespace in the printed file.
|
||||
func (h *Host) String() string {
|
||||
var buf bytes.Buffer
|
||||
//lint:ignore S1002 I prefer to write it this way
|
||||
if h.implicit == false {
|
||||
buf.WriteString(strings.Repeat(" ", int(h.leadingSpace)))
|
||||
buf.WriteString("Host")
|
||||
|
@ -438,7 +448,7 @@ type KV struct {
|
|||
Value string
|
||||
Comment string
|
||||
hasEquals bool
|
||||
leadingSpace uint16 // Space before the key. TODO handle spaces vs tabs.
|
||||
leadingSpace int // Space before the key. TODO handle spaces vs tabs.
|
||||
position Position
|
||||
}
|
||||
|
||||
|
@ -467,7 +477,7 @@ func (k *KV) String() string {
|
|||
// Empty is a line in the config file that contains only whitespace or comments.
|
||||
type Empty struct {
|
||||
Comment string
|
||||
leadingSpace uint16 // TODO handle spaces vs tabs.
|
||||
leadingSpace int // TODO handle spaces vs tabs.
|
||||
position Position
|
||||
}
|
||||
|
||||
|
@ -494,7 +504,6 @@ type Include struct {
|
|||
// Comment is the contents of any comment at the end of the Include
|
||||
// statement.
|
||||
Comment string
|
||||
parsed bool
|
||||
// an include directive can include several different files, and wildcards
|
||||
directives []string
|
||||
|
||||
|
@ -504,7 +513,7 @@ type Include struct {
|
|||
matches []string
|
||||
// actual filenames are listed here
|
||||
files map[string]*Config
|
||||
leadingSpace uint16
|
||||
leadingSpace int
|
||||
position Position
|
||||
depth uint8
|
||||
hasEquals bool
|
||||
|
@ -523,6 +532,7 @@ func removeDups(arr []string) []string {
|
|||
result := make([]string, 0)
|
||||
|
||||
for v := range arr {
|
||||
//lint:ignore S1002 I prefer it this way
|
||||
if encountered[arr[v]] == false {
|
||||
encountered[arr[v]] = true
|
||||
result = append(result, arr[v])
|
||||
|
@ -544,7 +554,7 @@ func NewInclude(directives []string, hasEquals bool, pos Position, comment strin
|
|||
directives: directives,
|
||||
files: make(map[string]*Config),
|
||||
position: pos,
|
||||
leadingSpace: uint16(pos.Col) - 1,
|
||||
leadingSpace: pos.Col - 1,
|
||||
depth: depth,
|
||||
hasEquals: hasEquals,
|
||||
}
|
||||
|
|
47
vendor/github.com/kevinburke/ssh_config/lexer.go
generated
vendored
47
vendor/github.com/kevinburke/ssh_config/lexer.go
generated
vendored
|
@ -1,22 +1,22 @@
|
|||
package ssh_config
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
buffruneio "github.com/pelletier/go-buffruneio"
|
||||
"bytes"
|
||||
)
|
||||
|
||||
// Define state functions
|
||||
type sshLexStateFn func() sshLexStateFn
|
||||
|
||||
type sshLexer struct {
|
||||
input *buffruneio.Reader // Textual source
|
||||
buffer []rune // Runes composing the current token
|
||||
inputIdx int
|
||||
input []rune // Textual source
|
||||
|
||||
buffer []rune // Runes composing the current token
|
||||
tokens chan token
|
||||
line uint32
|
||||
col uint16
|
||||
endbufferLine uint32
|
||||
endbufferCol uint16
|
||||
line int
|
||||
col int
|
||||
endbufferLine int
|
||||
endbufferCol int
|
||||
}
|
||||
|
||||
func (s *sshLexer) lexComment(previousState sshLexStateFn) sshLexStateFn {
|
||||
|
@ -114,16 +114,14 @@ func (s *sshLexer) lexRvalue() sshLexStateFn {
|
|||
}
|
||||
|
||||
func (s *sshLexer) read() rune {
|
||||
r, _, err := s.input.ReadRune()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
r := s.peek()
|
||||
if r == '\n' {
|
||||
s.endbufferLine++
|
||||
s.endbufferCol = 1
|
||||
} else {
|
||||
s.endbufferCol++
|
||||
}
|
||||
s.inputIdx++
|
||||
return r
|
||||
}
|
||||
|
||||
|
@ -197,21 +195,22 @@ func (s *sshLexer) emitWithValue(t tokenType, value string) {
|
|||
}
|
||||
|
||||
func (s *sshLexer) peek() rune {
|
||||
r, _, err := s.input.ReadRune()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
if s.inputIdx >= len(s.input) {
|
||||
return eof
|
||||
}
|
||||
s.input.UnreadRune()
|
||||
|
||||
r := s.input[s.inputIdx]
|
||||
return r
|
||||
}
|
||||
|
||||
func (s *sshLexer) follow(next string) bool {
|
||||
inputIdx := s.inputIdx
|
||||
for _, expectedRune := range next {
|
||||
r, _, err := s.input.ReadRune()
|
||||
defer s.input.UnreadRune()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
if inputIdx >= len(s.input) {
|
||||
return false
|
||||
}
|
||||
r := s.input[inputIdx]
|
||||
inputIdx++
|
||||
if expectedRune != r {
|
||||
return false
|
||||
}
|
||||
|
@ -226,10 +225,10 @@ func (s *sshLexer) run() {
|
|||
close(s.tokens)
|
||||
}
|
||||
|
||||
func lexSSH(input io.Reader) chan token {
|
||||
bufferedInput := buffruneio.NewReader(input)
|
||||
func lexSSH(input []byte) chan token {
|
||||
runes := bytes.Runes(input)
|
||||
l := &sshLexer{
|
||||
input: bufferedInput,
|
||||
input: runes,
|
||||
tokens: make(chan token),
|
||||
line: 1,
|
||||
col: 1,
|
||||
|
|
8
vendor/github.com/kevinburke/ssh_config/parser.go
generated
vendored
8
vendor/github.com/kevinburke/ssh_config/parser.go
generated
vendored
|
@ -149,7 +149,7 @@ func (p *sshParser) parseKV() sshParserStateFn {
|
|||
Value: val.val,
|
||||
Comment: comment,
|
||||
hasEquals: hasEquals,
|
||||
leadingSpace: uint16(key.Position.Col) - 1,
|
||||
leadingSpace: key.Position.Col - 1,
|
||||
position: key.Position,
|
||||
}
|
||||
lastHost.Nodes = append(lastHost.Nodes, kv)
|
||||
|
@ -169,6 +169,12 @@ func (p *sshParser) parseComment() sshParserStateFn {
|
|||
}
|
||||
|
||||
func parseSSH(flow chan token, system bool, depth uint8) *Config {
|
||||
// Ensure we consume tokens to completion even if parser exits early
|
||||
defer func() {
|
||||
for range flow {
|
||||
}
|
||||
}()
|
||||
|
||||
result := newConfig()
|
||||
result.position = Position{1, 1}
|
||||
parser := &sshParser{
|
||||
|
|
4
vendor/github.com/kevinburke/ssh_config/position.go
generated
vendored
4
vendor/github.com/kevinburke/ssh_config/position.go
generated
vendored
|
@ -8,8 +8,8 @@ import "fmt"
|
|||
// column number, respectively. Values of zero or less will cause Invalid(),
|
||||
// to return true.
|
||||
type Position struct {
|
||||
Line uint32 // line within the document
|
||||
Col uint16 // column within the line
|
||||
Line int // line within the document
|
||||
Col int // column within the line
|
||||
}
|
||||
|
||||
// String representation of the position.
|
||||
|
|
1
vendor/github.com/pelletier/go-buffruneio/.gitignore
generated
vendored
1
vendor/github.com/pelletier/go-buffruneio/.gitignore
generated
vendored
|
@ -1 +0,0 @@
|
|||
*.test
|
7
vendor/github.com/pelletier/go-buffruneio/.travis.yml
generated
vendored
7
vendor/github.com/pelletier/go-buffruneio/.travis.yml
generated
vendored
|
@ -1,7 +0,0 @@
|
|||
language: go
|
||||
sudo: false
|
||||
go:
|
||||
- 1.3.3
|
||||
- 1.4.3
|
||||
- 1.5.3
|
||||
- tip
|
62
vendor/github.com/pelletier/go-buffruneio/README.md
generated
vendored
62
vendor/github.com/pelletier/go-buffruneio/README.md
generated
vendored
|
@ -1,62 +0,0 @@
|
|||
# buffruneio
|
||||
|
||||
[](https://travis-ci.org/pelletier/go-buffruneio)
|
||||
[](https://godoc.org/github.com/pelletier/go-buffruneio)
|
||||
|
||||
Buffruneio is a wrapper around bufio to provide buffered runes access with
|
||||
unlimited unreads.
|
||||
|
||||
```go
|
||||
import "github.com/pelletier/go-buffruneio"
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
```go
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/pelletier/go-buffruneio"
|
||||
"strings"
|
||||
)
|
||||
|
||||
reader := buffruneio.NewReader(strings.NewReader("abcd"))
|
||||
fmt.Println(reader.ReadRune()) // 'a'
|
||||
fmt.Println(reader.ReadRune()) // 'b'
|
||||
fmt.Println(reader.ReadRune()) // 'c'
|
||||
reader.UnreadRune()
|
||||
reader.UnreadRune()
|
||||
fmt.Println(reader.ReadRune()) // 'b'
|
||||
fmt.Println(reader.ReadRune()) // 'c'
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
The documentation and additional examples are available at
|
||||
[godoc.org](http://godoc.org/github.com/pelletier/go-buffruneio).
|
||||
|
||||
## Contribute
|
||||
|
||||
Feel free to report bugs and patches using GitHub's pull requests system on
|
||||
[pelletier/go-toml](https://github.com/pelletier/go-buffruneio). Any feedback is
|
||||
much appreciated!
|
||||
|
||||
## LICENSE
|
||||
|
||||
Copyright (c) 2016 Thomas Pelletier
|
||||
|
||||
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.
|
117
vendor/github.com/pelletier/go-buffruneio/buffruneio.go
generated
vendored
117
vendor/github.com/pelletier/go-buffruneio/buffruneio.go
generated
vendored
|
@ -1,117 +0,0 @@
|
|||
// Package buffruneio is a wrapper around bufio to provide buffered runes access with unlimited unreads.
|
||||
package buffruneio
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"container/list"
|
||||
"errors"
|
||||
"io"
|
||||
)
|
||||
|
||||
// Rune to indicate end of file.
|
||||
const (
|
||||
EOF = -(iota + 1)
|
||||
)
|
||||
|
||||
// ErrNoRuneToUnread is returned by UnreadRune() when the read index is already at the beginning of the buffer.
|
||||
var ErrNoRuneToUnread = errors.New("no rune to unwind")
|
||||
|
||||
// Reader implements runes buffering for an io.Reader object.
|
||||
type Reader struct {
|
||||
buffer *list.List
|
||||
current *list.Element
|
||||
input *bufio.Reader
|
||||
}
|
||||
|
||||
// NewReader returns a new Reader.
|
||||
func NewReader(rd io.Reader) *Reader {
|
||||
return &Reader{
|
||||
buffer: list.New(),
|
||||
input: bufio.NewReader(rd),
|
||||
}
|
||||
}
|
||||
|
||||
type runeWithSize struct {
|
||||
r rune
|
||||
size int
|
||||
}
|
||||
|
||||
func (rd *Reader) feedBuffer() error {
|
||||
r, size, err := rd.input.ReadRune()
|
||||
|
||||
if err != nil {
|
||||
if err != io.EOF {
|
||||
return err
|
||||
}
|
||||
r = EOF
|
||||
}
|
||||
|
||||
newRuneWithSize := runeWithSize{r, size}
|
||||
|
||||
rd.buffer.PushBack(newRuneWithSize)
|
||||
if rd.current == nil {
|
||||
rd.current = rd.buffer.Back()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReadRune reads the next rune from buffer, or from the underlying reader if needed.
|
||||
func (rd *Reader) ReadRune() (rune, int, error) {
|
||||
if rd.current == rd.buffer.Back() || rd.current == nil {
|
||||
err := rd.feedBuffer()
|
||||
if err != nil {
|
||||
return EOF, 0, err
|
||||
}
|
||||
}
|
||||
|
||||
runeWithSize := rd.current.Value.(runeWithSize)
|
||||
rd.current = rd.current.Next()
|
||||
return runeWithSize.r, runeWithSize.size, nil
|
||||
}
|
||||
|
||||
// UnreadRune pushes back the previously read rune in the buffer, extending it if needed.
|
||||
func (rd *Reader) UnreadRune() error {
|
||||
if rd.current == rd.buffer.Front() {
|
||||
return ErrNoRuneToUnread
|
||||
}
|
||||
if rd.current == nil {
|
||||
rd.current = rd.buffer.Back()
|
||||
} else {
|
||||
rd.current = rd.current.Prev()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Forget removes runes stored before the current stream position index.
|
||||
func (rd *Reader) Forget() {
|
||||
if rd.current == nil {
|
||||
rd.current = rd.buffer.Back()
|
||||
}
|
||||
for ; rd.current != rd.buffer.Front(); rd.buffer.Remove(rd.current.Prev()) {
|
||||
}
|
||||
}
|
||||
|
||||
// PeekRune returns at most the next n runes, reading from the uderlying source if
|
||||
// needed. Does not move the current index. It includes EOF if reached.
|
||||
func (rd *Reader) PeekRunes(n int) []rune {
|
||||
res := make([]rune, 0, n)
|
||||
cursor := rd.current
|
||||
for i := 0; i < n; i++ {
|
||||
if cursor == nil {
|
||||
err := rd.feedBuffer()
|
||||
if err != nil {
|
||||
return res
|
||||
}
|
||||
cursor = rd.buffer.Back()
|
||||
}
|
||||
if cursor != nil {
|
||||
r := cursor.Value.(runeWithSize).r
|
||||
res = append(res, r)
|
||||
if r == EOF {
|
||||
return res
|
||||
}
|
||||
cursor = cursor.Next()
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue