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/main.go | |
parent | abb4e98e740b8695eae235b6459023cf9e6dfeeb (diff) | |
download | fatcat-6fceb914a9479b7a6c19a0f54971b3bd580146df.tar.gz fatcat-6fceb914a9479b7a6c19a0f54971b3bd580146df.zip |
binary called fatcatd
Diffstat (limited to 'golang/cmd/fatcatd/main.go')
-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) + } + +} |