Add helpers.NormalizeHugoFlagsFunc() to handle flag name changes

It currently handles --baseUrl to --baseURL, and --uglyUrls to --uglyURLs.

Special thanks to Eric Paris (@eparis) for writing the
"normalized name" support in Cobra, and for showing us
how it is used in Kubernetes.

See Issue #959
This commit is contained in:
Anthony Fok
2015-09-08 23:05:11 -06:00
parent 833a396f6b
commit d05b297e61
2 changed files with 19 additions and 3 deletions

View File

@@ -31,6 +31,7 @@ import (
"github.com/spf13/cast"
bp "github.com/spf13/hugo/bufferpool"
jww "github.com/spf13/jwalterweatherman"
"github.com/spf13/pflag"
"github.com/spf13/viper"
)
@@ -428,3 +429,17 @@ func DoArithmetic(a, b interface{}, op rune) (interface{}, error) {
return nil, errors.New("There is no such an operation")
}
}
// NormalizeHugoFlagsFunc facilitates transitions of Hugo command-line flags,
// e.g. --baseUrl to --baseURL, --uglyUrls to --uglyURLs
func NormalizeHugoFlagsFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {
switch name {
case "baseUrl":
name = "baseURL"
break
case "uglyUrls":
name = "uglyURLs"
break
}
return pflag.NormalizedName(name)
}