Merge pull request #32498 from thaJeztah/17.05.0-rc1-changelog
17.05.0 rc1 changelog
diff --git a/vendor.conf b/vendor.conf
index d8849e7..aa8b2f7 100644
--- a/vendor.conf
+++ b/vendor.conf
@@ -10,7 +10,7 @@
github.com/gorilla/context v1.1
github.com/gorilla/mux v1.1
github.com/kr/pty 5cf931ef8f
-github.com/mattn/go-shellwords v1.0.0
+github.com/mattn/go-shellwords v1.0.3
github.com/tchap/go-patricia v2.2.6
github.com/vdemeester/shakers 24d7f1d6a71aa5d9cbe7390e4afb66b7eef9e1b3
# forked golang.org/x/net package includes a patch for lazy loading trace templates
diff --git a/vendor/github.com/mattn/go-shellwords/LICENSE b/vendor/github.com/mattn/go-shellwords/LICENSE
new file mode 100644
index 0000000..740fa93
--- /dev/null
+++ b/vendor/github.com/mattn/go-shellwords/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2017 Yasuhiro Matsumoto
+
+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.
diff --git a/vendor/github.com/mattn/go-shellwords/README.md b/vendor/github.com/mattn/go-shellwords/README.md
index 56f357f..b1d235c 100644
--- a/vendor/github.com/mattn/go-shellwords/README.md
+++ b/vendor/github.com/mattn/go-shellwords/README.md
@@ -40,7 +40,7 @@
# License
-under the MIT License: http://mattn.mit-license.org/2014
+under the MIT License: http://mattn.mit-license.org/2017
# Author
diff --git a/vendor/github.com/mattn/go-shellwords/shellwords.go b/vendor/github.com/mattn/go-shellwords/shellwords.go
index 1abaa6c..1078039 100644
--- a/vendor/github.com/mattn/go-shellwords/shellwords.go
+++ b/vendor/github.com/mattn/go-shellwords/shellwords.go
@@ -4,7 +4,6 @@
"errors"
"os"
"regexp"
- "strings"
)
var (
@@ -35,21 +34,24 @@
type Parser struct {
ParseEnv bool
ParseBacktick bool
+ Position int
}
func NewParser() *Parser {
- return &Parser{ParseEnv, ParseBacktick}
+ return &Parser{ParseEnv, ParseBacktick, 0}
}
func (p *Parser) Parse(line string) ([]string, error) {
- line = strings.TrimSpace(line)
-
args := []string{}
buf := ""
var escaped, doubleQuoted, singleQuoted, backQuote bool
backtick := ""
- for _, r := range line {
+ pos := -1
+ got := false
+
+loop:
+ for i, r := range line {
if escaped {
buf += string(r)
escaped = false
@@ -69,12 +71,13 @@
if singleQuoted || doubleQuoted || backQuote {
buf += string(r)
backtick += string(r)
- } else if buf != "" {
+ } else if got {
if p.ParseEnv {
buf = replaceEnv(buf)
}
args = append(args, buf)
buf = ""
+ got = false
}
continue
}
@@ -107,15 +110,21 @@
singleQuoted = !singleQuoted
continue
}
+ case ';', '&', '|', '<', '>':
+ if !(escaped || singleQuoted || doubleQuoted || backQuote) {
+ pos = i
+ break loop
+ }
}
+ got = true
buf += string(r)
if backQuote {
backtick += string(r)
}
}
- if buf != "" {
+ if got {
if p.ParseEnv {
buf = replaceEnv(buf)
}
@@ -126,6 +135,8 @@
return nil, errors.New("invalid command line string")
}
+ p.Position = pos
+
return args, nil
}