package main import ( "flag" "fmt" "math/rand" "net/http" "time" "github.com/golang/glog" ) var ( flagPostgres string flagListen string ) func init() { flag.Set("logtostderr", "true") } func handleRobots(w http.ResponseWriter, r *http.Request) { // Prevent indexing by any (honest) search engine. fmt.Fprintf(w, "User-agent: *\nDisallow: /\n") } func main() { flag.StringVar(&flagPostgres, "postgres", "", "Postgres connection string (see lib/pq docs)") flag.StringVar(&flagListen, "listen", "127.0.0.1:8080", "Address to listen at for public HTTP traffic") flag.Parse() rand.Seed(time.Now().Unix()) a, err := newApp(flagPostgres) if err != nil { glog.Exitf("newApp: %v", err) } http.HandleFunc("/robots.txt", handleRobots) http.HandleFunc("/terms.json", a.handleTermsJson) http.HandleFunc("/term.json/", a.handleTermJson) http.HandleFunc("/randomterm.json/", a.handleRandomTermJson) http.HandleFunc("/terms", a.handleTerms) http.HandleFunc("/", a.handleTerms) http.HandleFunc("/term/", a.handleTerm) glog.Infof("Listening at %q", flagListen) if err := http.ListenAndServe(flagListen, nil); err != nil { glog.Exit(err) } }