From 7fbe0bde7b7928c3b53c75ee5224387dc5a275da Mon Sep 17 00:00:00 2001 From: nouney Date: Tue, 8 Nov 2016 00:53:54 +0100 Subject: [PATCH] Fix #269 --- cobra/cmd/add.go | 6 +++--- cobra/cmd/helpers.go | 13 +++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/cobra/cmd/add.go b/cobra/cmd/add.go index b89d4c47..9a6b0b48 100644 --- a/cobra/cmd/add.go +++ b/cobra/cmd/add.go @@ -78,8 +78,8 @@ import ( "github.com/spf13/cobra" ) -// {{.cmdName}}Cmd represents the {{.cmdName}} command -var {{ .cmdName }}Cmd = &cobra.Command{ +// {{.cmdName|camelcase}}Cmd represents the {{.cmdName}} command +var {{ .cmdName|camelcase }}Cmd = &cobra.Command{ Use: "{{ .cmdName }}", Short: "A brief description of your command", Long: ` + "`" + `A longer description that spans multiple lines and likely contains examples @@ -95,7 +95,7 @@ to quickly create a Cobra application.` + "`" + `, } func init() { - {{ .parentName }}.AddCommand({{ .cmdName }}Cmd) + {{ .parentName }}.AddCommand({{ .cmdName|camelcase }}Cmd) // Here you will define your flags and configuration settings. diff --git a/cobra/cmd/helpers.go b/cobra/cmd/helpers.go index 7cd3be18..45d9c6ee 100644 --- a/cobra/cmd/helpers.go +++ b/cobra/cmd/helpers.go @@ -22,6 +22,7 @@ import ( "strings" "text/template" "time" + "regexp" "github.com/spf13/viper" ) @@ -43,6 +44,7 @@ var cmdDirs = []string{"cmd", "cmds", "command", "commands"} func init() { funcMap = template.FuncMap{ "comment": commentifyString, + "camelcase": camelCaseString, } } @@ -354,3 +356,14 @@ func commentifyString(in string) string { } return strings.Join(newlines, "\n") } + +func camelCaseString(in string) string { + r := regexp.MustCompile("[A-Za-z0-9_]+") + parts := r.FindAll([]byte(in), -1) + for i, v := range parts { + if i > 0 { + parts[i] = bytes.Title(v) + } + } + return string(bytes.Join(parts, nil)) +}