Browse Source

Better top-level AppEngine support

Carl Jackson 11 years ago
parent
commit
3ed4dab228
3 changed files with 57 additions and 41 deletions
  1. +0
    -41
      goji.go
  2. +44
    -0
      serve.go
  3. +13
    -0
      serve_appengine.go

+ 0
- 41
goji.go View File

@ -34,44 +34,3 @@ methods of using this library are equally well supported.
Goji requires Go 1.2 or newer. Goji requires Go 1.2 or newer.
*/ */
package goji 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()
}

+ 44
- 0
serve.go View File

@ -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()
}

+ 13
- 0
serve_appengine.go View File

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

Loading…
Cancel
Save