diff options
-rw-r--r-- | golang/Gopkg.lock | 20 | ||||
-rw-r--r-- | golang/api/handlers/entities.go | 2 | ||||
-rw-r--r-- | golang/cmd/fatcatd/root.go | 14 | ||||
-rw-r--r-- | golang/cmd/fatcatd/serve.go | 50 | ||||
-rw-r--r-- | golang/fatcatd.toml | 2 | ||||
-rw-r--r-- | golang/gen/restapi/configure_fatcat.go | 25 |
6 files changed, 43 insertions, 70 deletions
diff --git a/golang/Gopkg.lock b/golang/Gopkg.lock index f5ff016e..624973cf 100644 --- a/golang/Gopkg.lock +++ b/golang/Gopkg.lock @@ -21,6 +21,12 @@ [[projects]] branch = "master" + name = "github.com/bradleyg/go-sentroni" + packages = ["."] + revision = "16e7bf48e1494134ac32000c9e22f3cd3e54c85f" + +[[projects]] + branch = "master" name = "github.com/carbocation/interpose" packages = [ ".", @@ -170,6 +176,12 @@ revision = "ef8a98b0bbce4a65b5aa4c368430a80ddc533168" [[projects]] + name = "github.com/inconshreveable/mousetrap" + packages = ["."] + revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" + version = "v1.0" + +[[projects]] name = "github.com/jessevdk/go-flags" packages = ["."] revision = "c6ca198ec95c841fdb89fc0de7496fed11ab854e" @@ -249,6 +261,12 @@ version = "v1.2.0" [[projects]] + name = "github.com/spf13/cobra" + packages = ["."] + revision = "a1f051bc3eba734da4772d60e2d677f47cf93ef4" + version = "v0.0.2" + +[[projects]] branch = "master" name = "github.com/spf13/jwalterweatherman" packages = ["."] @@ -348,6 +366,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "22b7db2e7bce9c3b5a5b85e98dfead56dce992a11035235a7d854916782a19dd" + inputs-digest = "6f07904be5d2765e24cd25378e28c8c1c34f6e4205100dc6f8364d0be5eafbf9" solver-name = "gps-cdcl" solver-version = 1 diff --git a/golang/api/handlers/entities.go b/golang/api/handlers/entities.go index 75c8b72b..61104553 100644 --- a/golang/api/handlers/entities.go +++ b/golang/api/handlers/entities.go @@ -2,8 +2,6 @@ package handlers import ( - //"net/http" - "github.com/go-pg/pg" "github.com/go-openapi/runtime/middleware" diff --git a/golang/cmd/fatcatd/root.go b/golang/cmd/fatcatd/root.go index d4c7f161..b5263b06 100644 --- a/golang/cmd/fatcatd/root.go +++ b/golang/cmd/fatcatd/root.go @@ -6,7 +6,6 @@ import ( "fmt" log "github.com/sirupsen/logrus" - //middleware "github.com/go-openapi/runtime/middleware" "github.com/spf13/viper" "github.com/spf13/cobra" "github.com/getsentry/raven-go" @@ -25,18 +24,20 @@ func init() { cobra.OnInitialize(initConfig) rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is ./fatcatd.toml)") rootCmd.PersistentFlags().BoolP("verbose", "v", false, "increase logging volume") + viper.BindPFlag("verbose", rootCmd.PersistentFlags().Lookup("verbose")) + + serveCmd.Flags().String("db-url", "postgres://", "database connecion string") rootCmd.AddCommand(serveCmd) } func initConfig() { - viper.SetDefault("port", 9411) - viper.SetDefault("verbose", true) + viper.SetDefault("port", 9411) + viper.SetDefault("db_url", "postgres://bnewbold@localhost/fatcat") viper.SetEnvPrefix("FATCAT") viper.AutomaticEnv() - if cfgFile != "" { // Use config file from the flag. viper.SetConfigFile(cfgFile) @@ -54,6 +55,11 @@ func initConfig() { // not default of stderr log.SetOutput(os.Stdout); + if viper.GetBool("verbose") == true { + log.SetLevel(log.DebugLevel) + } + log.Debug("It's verbose!") + raven.SetDSN(viper.GetString("sentry_dsn")); } diff --git a/golang/cmd/fatcatd/serve.go b/golang/cmd/fatcatd/serve.go index dcee4f4f..f1eeb995 100644 --- a/golang/cmd/fatcatd/serve.go +++ b/golang/cmd/fatcatd/serve.go @@ -2,17 +2,15 @@ package main import ( - //"os" "net/http" "github.com/spf13/viper" log "github.com/sirupsen/logrus" loads "github.com/go-openapi/loads" - //flags "github.com/jessevdk/go-flags" - //"github.com/getsentry/raven-go" "github.com/carbocation/interpose" "github.com/carbocation/interpose/adaptors" "github.com/meatballhat/negroni-logrus" + "github.com/bradleyg/go-sentroni" "github.com/go-pg/pg" "github.com/spf13/cobra" @@ -31,8 +29,6 @@ var serveCmd = &cobra.Command{ func main_serve() { - log.Warn("Starting up..."); - // load embedded swagger file swaggerSpec, err := loads.Analyzed(restapi.SwaggerJSON, "") if err != nil { @@ -49,36 +45,13 @@ func main_serve() { 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.Port = viper.GetInt("port") - db := pg.Connect(&pg.Options{ - User: "bnewbold", // XXX: - Database: "fatcat", - }) + db_options, err := pg.ParseURL(viper.GetString("db_url")) + if err != nil { + log.Panicf("parsing DB string: {}", err) + } + db := pg.Connect(db_options) defer db.Close() // register all the many handlers here @@ -87,20 +60,19 @@ func main_serve() { middle := interpose.New() - // sentry and upstream - // XXX: middle.UseHandler(sentry.Recovery(raven.DefaultClient, false)) + // sentry + middle.Use(adaptors.FromNegroni(sentroni.NewRecovery(viper.GetString("sentry_dsn")))) // logging - negroniMiddleware := negronilogrus.NewMiddleware() - middle.Use(adaptors.FromNegroni(negroniMiddleware)) + middle.Use(adaptors.FromNegroni(negronilogrus.NewMiddleware())) - // add clacks (TODO: only production) + // add clacks middle.UseHandler(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { rw.Header().Set("X-Clacks-Overhead:", "GNU Aaron Swartz, John Perry Barlow") })) + // actual handler middle.UseHandler(api.Serve(nil)) - server.SetHandler(middle) if err := server.Serve(); err != nil { diff --git a/golang/fatcatd.toml b/golang/fatcatd.toml index 72ddd2d9..bd839b19 100644 --- a/golang/fatcatd.toml +++ b/golang/fatcatd.toml @@ -1 +1 @@ -verbose = true +verbose = false diff --git a/golang/gen/restapi/configure_fatcat.go b/golang/gen/restapi/configure_fatcat.go index 2ec7e366..d4923b64 100644 --- a/golang/gen/restapi/configure_fatcat.go +++ b/golang/gen/restapi/configure_fatcat.go @@ -1,6 +1,6 @@ // This file is safe to edit. Once it exists it will not be overwritten -// XXX: this file isn't actually used +// NB: this file isn't actually used package restapi @@ -13,10 +13,6 @@ import ( runtime "github.com/go-openapi/runtime" middleware "github.com/go-openapi/runtime/middleware" graceful "github.com/tylerb/graceful" - "github.com/carbocation/interpose" - "github.com/carbocation/interpose/adaptors" - //"github.com/getsentry/raven-go" - "github.com/meatballhat/negroni-logrus" "git.archive.org/bnewbold/fatcat/golang/gen/restapi/operations" ) @@ -77,22 +73,5 @@ func setupMiddlewares(handler http.Handler) http.Handler { // The middleware configuration happens before anything, this middleware also applies to serving the swagger.json document. // So this is a good place to plug in a panic handling middleware, logging and metrics func setupGlobalMiddleware(handler http.Handler) http.Handler { - - middle := interpose.New() - - // sentry and upstream - //middle.UseHandler(sentry.Recovery(raven.DefaultClient, false)) - - // logging - negroniMiddleware := negronilogrus.NewMiddleware() - middle.Use(adaptors.FromNegroni(negroniMiddleware)) - - // add clacks - middle.UseHandler(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { - rw.Header().Set("X-Clacks-Overhead:", "GNU Aaron Swartz, John Perry Barlow") - })) - - middle.UseHandler(handler) - - return middle + return handler } |