From 3ed4dab2289fc04f5b4f95af9edc43d14089a64b Mon Sep 17 00:00:00 2001 From: Carl Jackson Date: Wed, 1 Oct 2014 10:45:45 -0700 Subject: [PATCH] Better top-level AppEngine support --- goji.go | 41 ----------------------------------------- serve.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ serve_appengine.go | 13 +++++++++++++ 3 files changed, 57 insertions(+), 41 deletions(-) create mode 100644 serve.go create mode 100644 serve_appengine.go diff --git a/goji.go b/goji.go index f6d9335..ab278cd 100644 --- a/goji.go +++ b/goji.go @@ -34,44 +34,3 @@ methods of using this library are equally well supported. Goji requires Go 1.2 or newer. */ package goji - -import ( - "flag" - "log" - "net/http" - - "github.com/zenazn/goji/bind" - "github.com/zenazn/goji/graceful" -) - -func init() { - bind.WithFlag() - if fl := log.Flags(); fl&log.Ltime != 0 { - log.SetFlags(fl | log.Lmicroseconds) - } -} - -// Serve starts Goji using reasonable defaults. -func Serve() { - if !flag.Parsed() { - flag.Parse() - } - - // Install our handler at the root of the standard net/http default mux. - // This allows packages like expvar to continue working as expected. - http.Handle("/", DefaultMux) - - listener := bind.Default() - log.Println("Starting Goji on", listener.Addr()) - - graceful.HandleSignals() - bind.Ready() - - err := graceful.Serve(listener, http.DefaultServeMux) - - if err != nil { - log.Fatal(err) - } - - graceful.Wait() -} diff --git a/serve.go b/serve.go new file mode 100644 index 0000000..0a930c3 --- /dev/null +++ b/serve.go @@ -0,0 +1,44 @@ +// +build !appengine + +package goji + +import ( + "flag" + "log" + "net/http" + + "github.com/zenazn/goji/bind" + "github.com/zenazn/goji/graceful" +) + +func init() { + bind.WithFlag() + if fl := log.Flags(); fl&log.Ltime != 0 { + log.SetFlags(fl | log.Lmicroseconds) + } +} + +// Serve starts Goji using reasonable defaults. +func Serve() { + if !flag.Parsed() { + flag.Parse() + } + + // Install our handler at the root of the standard net/http default mux. + // This allows packages like expvar to continue working as expected. + http.Handle("/", DefaultMux) + + listener := bind.Default() + log.Println("Starting Goji on", listener.Addr()) + + graceful.HandleSignals() + bind.Ready() + + err := graceful.Serve(listener, http.DefaultServeMux) + + if err != nil { + log.Fatal(err) + } + + graceful.Wait() +} diff --git a/serve_appengine.go b/serve_appengine.go new file mode 100644 index 0000000..edf9a2d --- /dev/null +++ b/serve_appengine.go @@ -0,0 +1,13 @@ +// +build appengine + +package goji + +import "net/http" + +// Serve starts Goji using reasonable defaults. +func Serve() { + // Install our handler at the root of the standard net/http default mux. + // This is required for App Engine, and also allows packages like expvar + // to continue working as expected. + http.Handle("/", DefaultMux) +}