sort flags with the same name in a consistent order
Docker-DCO-1.1-Signed-off-by: Jonathan Boulle <jonathanboulle@gmail.com> (github: jonboulle)
This commit is contained in:
parent
0959287cb7
commit
1d8231b230
1 changed files with 9 additions and 15 deletions
|
@ -305,12 +305,10 @@ type flagSlice []string
|
||||||
|
|
||||||
func (p flagSlice) Len() int { return len(p) }
|
func (p flagSlice) Len() int { return len(p) }
|
||||||
func (p flagSlice) Less(i, j int) bool {
|
func (p flagSlice) Less(i, j int) bool {
|
||||||
pi, pj := strings.ToLower(p[i]), strings.ToLower(p[j])
|
pi, pj := strings.TrimPrefix(p[i], "-"), strings.TrimPrefix(p[j], "-")
|
||||||
if pi[0] == '-' {
|
lpi, lpj := strings.ToLower(pi), strings.ToLower(pj)
|
||||||
pi = pi[1:]
|
if lpi != lpj {
|
||||||
}
|
return lpi < lpj
|
||||||
if pj[0] == '-' {
|
|
||||||
pj = pj[1:]
|
|
||||||
}
|
}
|
||||||
return pi < pj
|
return pi < pj
|
||||||
}
|
}
|
||||||
|
@ -443,8 +441,6 @@ func (f *FlagSet) PrintDefaults() {
|
||||||
}
|
}
|
||||||
fmt.Fprintln(writer, "\t", line)
|
fmt.Fprintln(writer, "\t", line)
|
||||||
}
|
}
|
||||||
// start := fmt.Sprintf(format, strings.Join(names, ", -"), flag.DefValue)
|
|
||||||
// fmt.Fprintln(f.out(), start, strings.Replace(flag.Usage, "\n", "\n"+strings.Repeat(" ", len(start)+1), -1))
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
writer.Flush()
|
writer.Flush()
|
||||||
|
@ -833,14 +829,12 @@ func (f *FlagSet) parseOne() (bool, string, error) {
|
||||||
f.args = f.args[1:]
|
f.args = f.args[1:]
|
||||||
has_value := false
|
has_value := false
|
||||||
value := ""
|
value := ""
|
||||||
for i := 1; i < len(name); i++ { // equals cannot be first
|
if i := strings.Index(name, "="); i != -1 {
|
||||||
if name[i] == '=' {
|
|
||||||
value = trimQuotes(name[i+1:])
|
value = trimQuotes(name[i+1:])
|
||||||
has_value = true
|
has_value = true
|
||||||
name = name[0:i]
|
name = name[:i]
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m := f.formal
|
m := f.formal
|
||||||
flag, alreadythere := m[name] // BUG
|
flag, alreadythere := m[name] // BUG
|
||||||
if !alreadythere {
|
if !alreadythere {
|
||||||
|
|
Loading…
Reference in a new issue