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) +}