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  }