Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
This commit is contained in:
Jess Frazelle 2018-07-16 06:18:21 -04:00
parent d0a12fdb41
commit b29220047e
No known key found for this signature in database
GPG key ID: 18F3685C0022BFF3
3 changed files with 38 additions and 5 deletions

4
Gopkg.lock generated
View file

@ -190,11 +190,11 @@
[[projects]]
branch = "master"
digest = "1:72ababdf871b47fe0d8f465b549cb487786160c2216aa14587acad047fdb051a"
digest = "1:26bac590d2ee7a8ace363d3b8f84e3f790e732470ba54995c9bf722827fc96c4"
name = "github.com/genuinetools/pkg"
packages = ["cli"]
pruneopts = "NUT"
revision = "6c9354aa29e8454896b79b212e7053211f815349"
revision = "3654fc151753f8cd41b366e0c15b9fa070890ddf"
[[projects]]
digest = "1:38e684375ef5b55e812332266d63f9fc5b6329ab303067c4cdda051db6d29ca4"

View file

@ -63,7 +63,7 @@
{{end}}
{{end}}
<footer class"text-center">
<footer class="text-center">
<p>Made with <code><3</code> by <a href="https://github.com/jessfraz">@jessfraz</a></p>
<p>Checkout the source code at: <a href="https://github.com/genuinetools/reg">github.com/genuinetools/reg</a></p>
</footer>

View file

@ -272,10 +272,16 @@ func (p *Program) resetCommandUsage(command Command) {
}
}
type mflag struct {
name string
defValue string
}
func resetFlagUsage(fs *flag.FlagSet) {
var (
hasFlags bool
flagBlock bytes.Buffer
flagMap = map[string]mflag{}
flagWriter = tabwriter.NewWriter(&flagBlock, 0, 4, 2, ' ', 0)
)
@ -291,13 +297,40 @@ func resetFlagUsage(fs *flag.FlagSet) {
// Add a double dash if the name is only one character long.
name := f.Name
if len(f.Name) > 1 {
if len(name) > 1 {
name = "-" + name
}
fmt.Fprintf(flagWriter, "\t-%s\t%s (default: %s)\n", f.Name, f.Usage, defValue)
// Try and find duplicates (or the shortcode flags and combine them.
// Like: -, --password
v, ok := flagMap[f.Usage]
if !ok {
flagMap[f.Usage] = mflag{
name: name,
defValue: defValue,
}
// Return here.
return
}
if len(v.name) <= 2 {
// We already had the shortcode, let's append.
v.name = fmt.Sprintf("%s, -%s", v.name, name)
} else {
v.name = fmt.Sprintf("%s, -%s", name, v.name)
}
flagMap[f.Usage] = mflag{
name: v.name,
defValue: defValue,
}
})
for desc, fm := range flagMap {
fmt.Fprintf(flagWriter, "\t-%s\t%s (default: %s)\n", fm.name, desc, fm.defValue)
}
flagWriter.Flush()
if !hasFlags {