Dan Anglin
71d62ecaf6
Add golangci-lint for linting and refactor the code based on the feedback from running it. Changes: - Add configuration for golangci-lint. - Break the large function in create.go into smaller ones. - Rename internal/templateFuncs to internal/templatefuncs to remove upper case letters in the package name. - Add a mage target for lint tests.
31 lines
583 B
Go
31 lines
583 B
Go
package cmd
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
type Runner interface {
|
|
Parse([]string) error
|
|
Name() string
|
|
Run() error
|
|
}
|
|
|
|
func usageFunc(name, summary string, flagset *flag.FlagSet) func() {
|
|
return func() {
|
|
var builder strings.Builder
|
|
|
|
fmt.Fprintf(&builder, "SUMMARY:\n %s - %s\n\nUSAGE:\n spruce %s [flags]\n\nFLAGS:", name, summary, name)
|
|
|
|
flagset.VisitAll(func(f *flag.Flag) {
|
|
fmt.Fprintf(&builder, "\n -%s, --%s\n %s", f.Name, f.Name, f.Usage)
|
|
})
|
|
|
|
builder.WriteString("\n")
|
|
|
|
w := flag.CommandLine.Output()
|
|
|
|
fmt.Fprint(w, builder.String())
|
|
}
|
|
}
|