@@ -4,6 +4,8 @@ Copyright © 2026 NAME HERE <EMAIL ADDRESS>
44package cmd
55
66import (
7+ "strings"
8+
79 "github.com/andrearcaina/goforge/internal/goforge"
810 "github.com/andrearcaina/goforge/internal/spec"
911 "github.com/spf13/cobra"
@@ -31,10 +33,18 @@ goforge generate --some-flag "Developer"`,
3133func init () {
3234 rootCmd .AddCommand (generateCmd )
3335
36+ // general flags
3437 generateCmd .Flags ().StringVarP (& cfg .OutputPath , "path" , "p" , "." , "The directory to write the generated file to" )
3538 generateCmd .Flags ().BoolVarP (& cfg .Default , "default" , "d" , false , "Use default configuration values" )
3639
40+ // flags for form fields
3741 generateCmd .Flags ().StringVarP (& cfg .Form .Name , "name" , "n" , "" , "The name for the go.mod module" )
3842 generateCmd .Flags ().StringVarP ((* string )(& cfg .Form .ServerTypeFlag ), "server" , "s" , "" , "Type of server to generate (rest/grpc/graphql)" )
39- generateCmd .Flags ().BoolVar (& cfg .Form .DatabaseFlag , "database" , false , "Generate database files" )
43+ generateCmd .Flags ().BoolVar (& cfg .Form .DatabaseFlag , "database" , false , "Generate database files (if flag is set, set to true)" )
44+
45+ // normalize server type flag to lowercase
46+ generateCmd .PreRun = func (cmd * cobra.Command , args []string ) {
47+ // first convert to string, then lowercase the string, then convert back to ServerTypeFlag
48+ cfg .Form .ServerTypeFlag = spec .ServerTypeFlag (strings .ToLower (string (cfg .Form .ServerTypeFlag )))
49+ }
4050}
0 commit comments