@@ -79,6 +79,10 @@ func Generate() (files []string, err error) {
79
79
80
80
// Generate generats the client package and CLI.
81
81
func (g * Generator ) Generate () (_ []string , err error ) {
82
+ if g .API == nil {
83
+ return nil , fmt .Errorf ("missing API definition, make sure design is properly initialized" )
84
+ }
85
+
82
86
go utils .Catch (nil , func () { g .Cleanup () })
83
87
84
88
defer func () {
@@ -87,16 +91,19 @@ func (g *Generator) Generate() (_ []string, err error) {
87
91
}
88
92
}()
89
93
90
- if g .Target == "" {
91
- g .Target = "client"
92
- }
93
- if g .ToolDirName == "" {
94
- g .ToolDirName = "tool"
95
- }
96
- if g .Tool == "" {
97
- g .Tool = defaultToolName (g .API )
94
+ firstNonEmpty := func (args ... string ) string {
95
+ for _ , value := range args {
96
+ if len (value ) > 0 {
97
+ return value
98
+ }
99
+ }
100
+ return ""
98
101
}
99
102
103
+ g .Target = firstNonEmpty (g .Target , "client" )
104
+ g .ToolDirName = firstNonEmpty (g .ToolDirName , "tool" )
105
+ g .Tool = firstNonEmpty (g .Tool , defaultToolName (g .API ))
106
+
100
107
codegen .Reserved [g .Target ] = true
101
108
102
109
// Setup output directories as needed
@@ -201,6 +208,9 @@ func (g *Generator) Generate() (_ []string, err error) {
201
208
}
202
209
203
210
func defaultToolName (api * design.APIDefinition ) string {
211
+ if api == nil {
212
+ return ""
213
+ }
204
214
return strings .Replace (strings .ToLower (api .Name ), " " , "-" , - 1 ) + "-cli"
205
215
}
206
216
0 commit comments