github.com/emreu/go-swagger@v0.22.1/generator/templates/server/main.gotmpl (about) 1 // Code generated by go-swagger; DO NOT EDIT. 2 3 4 {{ if .Copyright -}}// {{ comment .Copyright -}}{{ end }} 5 6 7 package main 8 9 import ( 10 "log" 11 "os" 12 "net/http" 13 14 loads "github.com/go-openapi/loads" 15 {{ if .UseGoStructFlags }}flags "github.com/jessevdk/go-flags" 16 {{ end -}} 17 {{ if .UsePFlags }}flag "github.com/spf13/pflag" 18 {{ end -}} 19 {{ if .UseFlags }}"flag" 20 {{ end -}} 21 22 23 {{range .DefaultImports}}{{printf "%q" .}} 24 {{end}} 25 {{range $key, $value := .Imports}}{{$key}} {{ printf "%q" $value}} 26 {{end}} 27 ) 28 29 // This file was generated by the swagger tool. 30 // Make sure not to overwrite this file after you generated it because all your edits would be lost! 31 {{ if .ExcludeSpec }} 32 func init() { 33 loads.AddLoader(fmts.YAMLMatcher, fmts.YAMLDoc) 34 } 35 {{ end }} 36 37 func main() { 38 {{ if .UsePFlags }}{{ if not .ExcludeSpec }} 39 swaggerSpec, err := loads.Embedded({{ .APIPackage }}.SwaggerJSON, {{ .APIPackage }}.FlatSwaggerJSON) 40 if err != nil { 41 log.Fatalln(err) 42 } 43 {{ end }} 44 var server *{{ .APIPackage }}.Server // make sure init is called 45 46 flag.Usage = func() { 47 fmt.Fprint(os.Stderr, "Usage:\n") 48 fmt.Fprint(os.Stderr, " {{ dasherize .Name }}-server [OPTIONS]\n\n") 49 50 title := {{ if .Info }}{{ if .Info.Title }}{{ printf "%q" .Info.Title }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Title{{ end }}{{ end }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Title{{ end }}{{ end}} 51 fmt.Fprint(os.Stderr, title+"\n\n") 52 desc := {{ if .Info }}{{ if .Info.Description }}{{ printf "%q" .Info.Description }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Description{{ end }}{{ end }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Description{{ end }}{{ end}} 53 if desc != "" { 54 fmt.Fprintf(os.Stderr, desc+"\n\n") 55 } 56 fmt.Fprintln(os.Stderr, flag.CommandLine.FlagUsages()) 57 } 58 // parse the CLI flags 59 flag.Parse() 60 61 {{ if .ExcludeSpec }} 62 server = {{ .APIPackage }}.NewServer(nil) 63 swaggerSpec, err := loads.Spec(string(server.Spec)) 64 if err != nil { 65 log.Fatalln(err) 66 } 67 api := {{.Package}}.New{{ pascalize .Name }}API(swaggerSpec) 68 server.SetAPI(api) 69 {{ else }} 70 api :={{.Package}}.New{{ pascalize .Name }}API(swaggerSpec) 71 // get server with flag values filled out 72 server = {{ .APIPackage }}.NewServer(api) 73 {{ end }} 74 defer server.Shutdown() 75 76 server.ConfigureAPI() 77 if err := server.Serve(); err != nil { 78 log.Fatalln(err) 79 } 80 {{ end }} 81 {{ if .UseGoStructFlags}}{{ if .ExcludeSpec }} 82 server := {{ .APIPackage }}.NewServer(nil){{ else }} 83 swaggerSpec, err := loads.Embedded({{ .APIPackage }}.SwaggerJSON, {{ .APIPackage }}.FlatSwaggerJSON) 84 if err != nil { 85 log.Fatalln(err) 86 } 87 88 api := {{.Package}}.New{{ pascalize .Name }}API(swaggerSpec) 89 server := {{ .APIPackage }}.NewServer(api) 90 defer server.Shutdown(){{ end }} 91 92 parser := flags.NewParser(server, flags.Default) 93 parser.ShortDescription = {{ if .Info }}{{ if .Info.Title }}{{ printf "%q" .Info.Title }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Title{{ end }}{{ end }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Title{{ end }}{{ end}} 94 parser.LongDescription = {{ if .Info }}{{ if .Info.Description }}{{ printf "%q" .Info.Description }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Description{{ end }}{{ end }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Description{{ end }}{{ end}} 95 96 {{ if not .ExcludeSpec }} 97 server.ConfigureFlags() 98 for _, optsGroup := range api.CommandLineOptionsGroups { 99 _, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options) 100 if err != nil { 101 log.Fatalln(err) 102 } 103 } 104 {{ end }} 105 if _, err := parser.Parse(); err != nil { 106 code := 1 107 if fe, ok := err.(*flags.Error); ok { 108 if fe.Type == flags.ErrHelp { 109 code = 0 110 } 111 } 112 os.Exit(code) 113 } 114 {{ if .ExcludeSpec }} 115 swaggerSpec, err := loads.Spec(string(server.Spec)) 116 if err != nil { 117 log.Fatalln(err) 118 } 119 120 api := {{.Package}}.New{{ pascalize .Name }}API(swaggerSpec) 121 server.SetAPI(api) 122 defer server.Shutdown() 123 {{ end }} 124 125 server.ConfigureAPI() 126 127 if err := server.Serve(); err != nil { 128 log.Fatalln(err) 129 } 130 {{ end }} 131 {{ if .UseFlags}}{{ if not .ExcludeSpec }} 132 swaggerSpec, err := loads.Embedded({{ .APIPackage }}.SwaggerJSON, {{ .APIPackage }}.FlatSwaggerJSON) 133 if err != nil { 134 log.Fatalln(err) 135 } 136 {{ end }} 137 var server *{{ .APIPackage }}.Server // make sure init is called 138 139 flag.Usage = func() { 140 fmt.Fprint(os.Stderr, "Usage:\n") 141 fmt.Fprint(os.Stderr, " {{ dasherize .Name }}-server [OPTIONS]\n\n") 142 143 title := {{ if .Info }}{{ if .Info.Title }}{{ printf "%q" .Info.Title }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Title{{ end }}{{ end }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Title{{ end }}{{ end}} 144 fmt.Fprint(os.Stderr, title+"\n\n") 145 desc := {{ if .Info }}{{ if .Info.Description }}{{ printf "%q" .Info.Description }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Description{{ end }}{{ end }}{{ else }}{{ if .ExcludeSpec }}""{{ else }}swaggerSpec.Spec().Info.Description{{ end }}{{ end}} 146 if desc != "" { 147 fmt.Fprintf(os.Stderr, desc+"\n\n") 148 } 149 flag.CommandLine.SetOutput(os.Stderr) 150 flag.PrintDefaults() 151 } 152 // parse the CLI flags 153 flag.Parse() 154 155 {{ if .ExcludeSpec }} 156 server = {{ .APIPackage }}.NewServer(nil) 157 swaggerSpec, err := loads.Spec(string(server.Spec)) 158 if err != nil { 159 log.Fatalln(err) 160 } 161 api := {{.Package}}.New{{ pascalize .Name }}API(swaggerSpec) 162 server.SetAPI(api) 163 {{ else }} 164 api :={{.Package}}.New{{ pascalize .Name }}API(swaggerSpec) 165 // get server with flag values filled out 166 server = {{ .APIPackage }}.NewServer(api) 167 {{ end }} 168 defer server.Shutdown() 169 170 server.ConfigureAPI() 171 if err := server.Serve(); err != nil { 172 log.Fatalln(err) 173 } 174 {{ end }} 175 }