update vendor, fix #788

This commit is contained in:
fatedier 2018-05-21 21:09:18 +08:00
parent 2e497274ba
commit 490019fb51
7 changed files with 55 additions and 8 deletions

10
Gopkg.lock generated
View File

@ -30,7 +30,7 @@
"net/mux", "net/mux",
"pool" "pool"
] ]
revision = "354693cdd7fd9fa4f207c2f91ec2534615d3e5e5" revision = "674e937d2ef03e9ef7798c363071cad128f3c13b"
[[projects]] [[projects]]
branch = "frp" branch = "frp"
@ -99,8 +99,8 @@
[[projects]] [[projects]]
name = "github.com/spf13/cobra" name = "github.com/spf13/cobra"
packages = ["."] packages = ["."]
revision = "a1f051bc3eba734da4772d60e2d677f47cf93ef4" revision = "ef82de70bb3f60c65fb8eebacbb2d122ef517385"
version = "v0.0.2" version = "v0.0.3"
[[projects]] [[projects]]
name = "github.com/spf13/pflag" name = "github.com/spf13/pflag"
@ -169,11 +169,11 @@
"ipv4", "ipv4",
"proxy" "proxy"
] ]
revision = "d11bb6cd8e3c4e60239c9cb20ef68586d74500d0" revision = "57065200b4b034a1c8ad54ff77069408c2218ae6"
[solve-meta] [solve-meta]
analyzer-name = "dep" analyzer-name = "dep"
analyzer-version = 1 analyzer-version = 1
inputs-digest = "62cd3fc531e189e2459de46ff5f84b935c734a3032f0f78c4ed4b3e9434ba9ad" inputs-digest = "621310de53a9243693d20ce53690f373fd558440616fcf2893fec5ba4aa2b6ca"
solver-name = "gps-cdcl" solver-name = "gps-cdcl"
solver-version = 1 solver-version = 1

View File

@ -63,12 +63,16 @@
[[constraint]] [[constraint]]
name = "github.com/spf13/cobra" name = "github.com/spf13/cobra"
version = "0.0.2" version = "0.0.3"
[[constraint]] [[constraint]]
name = "github.com/vaughan0/go-ini" name = "github.com/vaughan0/go-ini"
revision = "a98ad7ee00ec53921f08832bc06ecf7fd600e6a1" revision = "a98ad7ee00ec53921f08832bc06ecf7fd600e6a1"
[[override]]
name = "github.com/templexxx/reedsolomon"
version = "0.1.1"
[prune] [prune]
go-tests = true go-tests = true
unused-packages = true unused-packages = true

View File

@ -23,6 +23,7 @@ import (
var ( var (
ErrMsgType = errors.New("message type error") ErrMsgType = errors.New("message type error")
ErrMaxMsgLength = errors.New("message length exceed the limit") ErrMaxMsgLength = errors.New("message length exceed the limit")
ErrMsgLength = errors.New("message length error")
ErrMsgFormat = errors.New("message format error") ErrMsgFormat = errors.New("message format error")
) )
@ -46,6 +47,9 @@ func (msgCtl *MsgCtl) readMsg(c io.Reader) (typeByte byte, buffer []byte, err er
if length > msgCtl.maxMsgLength { if length > msgCtl.maxMsgLength {
err = ErrMaxMsgLength err = ErrMaxMsgLength
return return
} else if length < 0 {
err = ErrMsgLength
return
} }
buffer = make([]byte, length) buffer = make([]byte, length)

View File

@ -251,6 +251,14 @@ __%[1]s_handle_word()
__%[1]s_handle_command __%[1]s_handle_command
elif [[ $c -eq 0 ]]; then elif [[ $c -eq 0 ]]; then
__%[1]s_handle_command __%[1]s_handle_command
elif __%[1]s_contains_word "${words[c]}" "${command_aliases[@]}"; then
# aliashash variable is an associative array which is only supported in bash > 3.
if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then
words[c]=${aliashash[${words[c]}]}
__%[1]s_handle_command
else
__%[1]s_handle_noun
fi
else else
__%[1]s_handle_noun __%[1]s_handle_noun
fi fi
@ -266,6 +274,7 @@ func writePostscript(buf *bytes.Buffer, name string) {
buf.WriteString(fmt.Sprintf(`{ buf.WriteString(fmt.Sprintf(`{
local cur prev words cword local cur prev words cword
declare -A flaghash 2>/dev/null || : declare -A flaghash 2>/dev/null || :
declare -A aliashash 2>/dev/null || :
if declare -F _init_completion >/dev/null 2>&1; then if declare -F _init_completion >/dev/null 2>&1; then
_init_completion -s || return _init_completion -s || return
else else
@ -305,6 +314,7 @@ func writeCommands(buf *bytes.Buffer, cmd *Command) {
continue continue
} }
buf.WriteString(fmt.Sprintf(" commands+=(%q)\n", c.Name())) buf.WriteString(fmt.Sprintf(" commands+=(%q)\n", c.Name()))
writeCmdAliases(buf, c)
} }
buf.WriteString("\n") buf.WriteString("\n")
} }
@ -443,6 +453,21 @@ func writeRequiredNouns(buf *bytes.Buffer, cmd *Command) {
} }
} }
func writeCmdAliases(buf *bytes.Buffer, cmd *Command) {
if len(cmd.Aliases) == 0 {
return
}
sort.Sort(sort.StringSlice(cmd.Aliases))
buf.WriteString(fmt.Sprint(` if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then`, "\n"))
for _, value := range cmd.Aliases {
buf.WriteString(fmt.Sprintf(" command_aliases+=(%q)\n", value))
buf.WriteString(fmt.Sprintf(" aliashash[%q]=%q\n", value, cmd.Name()))
}
buf.WriteString(` fi`)
buf.WriteString("\n")
}
func writeArgAliases(buf *bytes.Buffer, cmd *Command) { func writeArgAliases(buf *bytes.Buffer, cmd *Command) {
buf.WriteString(" noun_aliases=()\n") buf.WriteString(" noun_aliases=()\n")
sort.Sort(sort.StringSlice(cmd.ArgAliases)) sort.Sort(sort.StringSlice(cmd.ArgAliases))
@ -469,6 +494,10 @@ func gen(buf *bytes.Buffer, cmd *Command) {
} }
buf.WriteString(fmt.Sprintf(" last_command=%q\n", commandName)) buf.WriteString(fmt.Sprintf(" last_command=%q\n", commandName))
buf.WriteString("\n")
buf.WriteString(" command_aliases=()\n")
buf.WriteString("\n")
writeCommands(buf, cmd) writeCommands(buf, cmd)
writeFlags(buf, cmd) writeFlags(buf, cmd)
writeRequiredFlag(buf, cmd) writeRequiredFlag(buf, cmd)

View File

@ -181,7 +181,7 @@ a custom flag completion function with cobra.BashCompCustom:
```go ```go
annotation := make(map[string][]string) annotation := make(map[string][]string)
annotation[cobra.BashCompFilenameExt] = []string{"__kubectl_get_namespaces"} annotation[cobra.BashCompCustom] = []string{"__kubectl_get_namespaces"}
flag := &pflag.Flag{ flag := &pflag.Flag{
Name: "namespace", Name: "namespace",

View File

@ -27,6 +27,9 @@ import (
flag "github.com/spf13/pflag" flag "github.com/spf13/pflag"
) )
// FParseErrWhitelist configures Flag parse errors to be ignored
type FParseErrWhitelist flag.ParseErrorsWhitelist
// Command is just that, a command for your application. // Command is just that, a command for your application.
// E.g. 'go run ...' - 'run' is the command. Cobra requires // E.g. 'go run ...' - 'run' is the command. Cobra requires
// you to define the usage and description as part of your command // you to define the usage and description as part of your command
@ -137,6 +140,9 @@ type Command struct {
// TraverseChildren parses flags on all parents before executing child command. // TraverseChildren parses flags on all parents before executing child command.
TraverseChildren bool TraverseChildren bool
//FParseErrWhitelist flag parse errors to be ignored
FParseErrWhitelist FParseErrWhitelist
// commands is the list of commands supported by this program. // commands is the list of commands supported by this program.
commands []*Command commands []*Command
// parent is a parent command for this command. // parent is a parent command for this command.
@ -1463,6 +1469,10 @@ func (c *Command) ParseFlags(args []string) error {
} }
beforeErrorBufLen := c.flagErrorBuf.Len() beforeErrorBufLen := c.flagErrorBuf.Len()
c.mergePersistentFlags() c.mergePersistentFlags()
//do it here after merging all flags and just before parse
c.Flags().ParseErrorsWhitelist = flag.ParseErrorsWhitelist(c.FParseErrWhitelist)
err := c.Flags().Parse(args) err := c.Flags().Parse(args)
// Print warnings if they occurred (e.g. deprecated flag messages). // Print warnings if they occurred (e.g. deprecated flag messages).
if c.flagErrorBuf.Len()-beforeErrorBufLen > 0 && err == nil { if c.flagErrorBuf.Len()-beforeErrorBufLen > 0 && err == nil {

View File

@ -98,7 +98,7 @@ func (h *Header) Marshal() ([]byte, error) {
return b, nil return b, nil
} }
// Parse parses b as an IPv4 header and sotres the result in h. // Parse parses b as an IPv4 header and stores the result in h.
func (h *Header) Parse(b []byte) error { func (h *Header) Parse(b []byte) error {
if h == nil || len(b) < HeaderLen { if h == nil || len(b) < HeaderLen {
return errHeaderTooShort return errHeaderTooShort