go: vendor the oapi-codegen cmd
See the comment in tools.go, I cannot fully explain what's happening here. Somehow, Go 1.14 wants to use the vendored version of oapi-codegen but without this file, oapi-codegen isn't vendored so the generation fails. Signed-off-by: Ondřej Budai <ondrej@budai.cz>
This commit is contained in:
parent
1a3cbb282a
commit
2241a8d9ed
75 changed files with 11211 additions and 0 deletions
60
vendor/github.com/deepmap/oapi-codegen/pkg/util/inputmapping.go
generated
vendored
Normal file
60
vendor/github.com/deepmap/oapi-codegen/pkg/util/inputmapping.go
generated
vendored
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
package util
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// The input mapping is experessed on the command line as `key1:value1,key2:value2,...`
|
||||
// We parse it here, but need to keep in mind that keys or values may contain
|
||||
// commas and colons. We will allow escaping those using double quotes, so
|
||||
// when passing in "key1":"value1", we will not look inside the quoted sections.
|
||||
func ParseCommandlineMap(src string) (map[string]string, error) {
|
||||
result := make(map[string]string)
|
||||
tuples := splitString(src, ',')
|
||||
for _, t := range tuples {
|
||||
kv := splitString(t, ':')
|
||||
if len(kv) != 2 {
|
||||
return nil, fmt.Errorf("expected key:value, got :%s", t)
|
||||
}
|
||||
key := strings.TrimLeft(kv[0], `"`)
|
||||
key = strings.TrimRight(key, `"`)
|
||||
|
||||
value := strings.TrimLeft(kv[1], `"`)
|
||||
value = strings.TrimRight(value, `"`)
|
||||
|
||||
result[key] = value
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// This function splits a string along the specifed separator, but it
|
||||
// ignores anything between double quotes for splitting. We do simple
|
||||
// inside/outside quote counting. Quotes are not stripped from output.
|
||||
func splitString(s string, sep rune) ([]string) {
|
||||
const escapeChar rune = '"'
|
||||
|
||||
var parts []string
|
||||
var part string
|
||||
inQuotes := false
|
||||
|
||||
for _, c := range s {
|
||||
if c == escapeChar{
|
||||
if inQuotes {
|
||||
inQuotes = false
|
||||
} else {
|
||||
inQuotes = true
|
||||
}
|
||||
}
|
||||
|
||||
// If we've gotten the separator rune, consider the previous part
|
||||
// complete, but only if we're outside of quoted sections
|
||||
if c == sep && !inQuotes {
|
||||
parts = append(parts, part)
|
||||
part = ""
|
||||
continue
|
||||
}
|
||||
part = part + string(c)
|
||||
}
|
||||
return append(parts, part)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue