diff options
| author | Bryan Newbold <bnewbold@robocracy.org> | 2018-05-09 19:00:43 -0700 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-05-09 19:00:43 -0700 | 
| commit | 6fceb914a9479b7a6c19a0f54971b3bd580146df (patch) | |
| tree | 04e150eb947c66ac904e7e46e0b7040c1c2ab0fd /golang/cmd/fatcatd | |
| parent | abb4e98e740b8695eae235b6459023cf9e6dfeeb (diff) | |
| download | fatcat-6fceb914a9479b7a6c19a0f54971b3bd580146df.tar.gz fatcat-6fceb914a9479b7a6c19a0f54971b3bd580146df.zip | |
binary called fatcatd
Diffstat (limited to 'golang/cmd/fatcatd')
| -rw-r--r-- | golang/cmd/fatcatd/main.go | 55 | 
1 files changed, 55 insertions, 0 deletions
| diff --git a/golang/cmd/fatcatd/main.go b/golang/cmd/fatcatd/main.go new file mode 100644 index 00000000..94455bf8 --- /dev/null +++ b/golang/cmd/fatcatd/main.go @@ -0,0 +1,55 @@ + +package main + +import ( +	"log" +	"os" + +	loads "github.com/go-openapi/loads" +	flags "github.com/jessevdk/go-flags" + +	"git.archive.org/bnewbold/fatcat/golang/restapi" +	"git.archive.org/bnewbold/fatcat/golang/restapi/operations" +) + +func main() { + +    // load embedded swagger file +    swaggerSpec, err := loads.Analyzed(restapi.SwaggerJSON, "") +    if err != nil { +        log.Fatalln(err) +    } + +    // create new service API +	api := operations.NewFatcatAPI(swaggerSpec) +	server := restapi.NewServer(api) +	defer server.Shutdown() + +	parser := flags.NewParser(server, flags.Default) +	parser.ShortDescription = "fatcat" +	parser.LongDescription = "A scalable, versioned, API-oriented catalog of bibliographic entities and file metadata" +	server.ConfigureFlags() +	for _, optsGroup := range api.CommandLineOptionsGroups { +		_, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options) +		if err != nil { +			log.Fatalln(err) +		} +	} + +	if _, err := parser.Parse(); err != nil { +		code := 1 +		if fe, ok := err.(*flags.Error); ok { +			if fe.Type == flags.ErrHelp { +				code = 0 +			} +		} +		os.Exit(code) +	} + +	server.ConfigureAPI() + +	if err := server.Serve(); err != nil { +		log.Fatalln(err) +	} + +} | 
