github.com/Bio-core/jtree@v0.0.0-20190705165106-1d7a7e7d6272/cmd/jtree-metadata-server/main.go (about)

     1  package main
     2  
     3  import (
     4  	"log"
     5  	"os"
     6  
     7  	loads "github.com/go-openapi/loads"
     8  	flags "github.com/jessevdk/go-flags"
     9  
    10  	"github.com/Bio-core/jtree/restapi"
    11  	"github.com/Bio-core/jtree/restapi/operations"
    12  )
    13  
    14  // This file was generated by the swagger tool.
    15  // Make sure not to overwrite this file after you generated it because all your edits would be lost!
    16  
    17  func main() {
    18  
    19  	swaggerSpec, err := loads.Embedded(restapi.SwaggerJSON, restapi.FlatSwaggerJSON)
    20  	if err != nil {
    21  		log.Fatalln(err)
    22  	}
    23  
    24  	api := operations.NewJtreeMetadataAPI(swaggerSpec)
    25  	server := restapi.NewServer(api)
    26  	defer server.Shutdown()
    27  
    28  	parser := flags.NewParser(server, flags.Default)
    29  	parser.ShortDescription = "Jtree Metadata API"
    30  	parser.LongDescription = "Metadata API"
    31  
    32  	server.ConfigureFlags()
    33  
    34  	for _, optsGroup := range api.CommandLineOptionsGroups {
    35  		_, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options)
    36  		if err != nil {
    37  			log.Fatalln(err)
    38  		}
    39  	}
    40  
    41  	if _, err := parser.Parse(); err != nil {
    42  		code := 1
    43  		if fe, ok := err.(*flags.Error); ok {
    44  			if fe.Type == flags.ErrHelp {
    45  				code = 0
    46  			}
    47  		}
    48  		os.Exit(code)
    49  	}
    50  
    51  	server.ConfigureAPI()
    52  
    53  	if err := server.Serve(); err != nil {
    54  		log.Fatalln(err)
    55  	}
    56  
    57  }