func main() { defer common.LogPanic() // Setup DB flags. dbConf := idb.DBConfigFromFlags() common.InitWithMetrics("skiaperf", graphiteServer) Init() if !*local { if err := dbConf.GetPasswordFromMetadata(); err != nil { glog.Fatal(err) } } if err := dbConf.InitDB(); err != nil { glog.Fatal(err) } stats.Start(masterTileBuilder, git) alerting.Start(masterTileBuilder) var redirectURL = fmt.Sprintf("http://localhost%s/oauth2callback/", *port) if !*local { redirectURL = "https://perf.skia.org/oauth2callback/" } if err := login.InitFromMetadataOrJSON(redirectURL, login.DEFAULT_SCOPE, login.DEFAULT_DOMAIN_WHITELIST); err != nil { glog.Fatalf("Failed to initialize the login system: %s", err) } // Resources are served directly. router := mux.NewRouter() router.PathPrefix("/res/").HandlerFunc(makeResourceHandler()) router.HandleFunc("/", templateHandler("index.html")) router.HandleFunc("/frame/", templateHandler("frame.html")) router.HandleFunc("/shortcuts/", shortcutHandler) router.PathPrefix("/tiles/").HandlerFunc(tileHandler) router.PathPrefix("/single/").HandlerFunc(singleHandler) router.PathPrefix("/query/").HandlerFunc(queryHandler) router.HandleFunc("/commits/", commitsHandler) router.HandleFunc("/_/commits/", commitsJSONHandler) router.HandleFunc("/shortcommits/", shortCommitsHandler) router.HandleFunc("/trybots/", trybotHandler) router.HandleFunc("/clusters/", templateHandler("clusters.html")) router.HandleFunc("/clustering/", clusteringHandler) router.PathPrefix("/cl/").HandlerFunc(clHandler) router.PathPrefix("/activitylog/").HandlerFunc(activityHandler) router.HandleFunc("/alerts/", templateHandler("alerting.html")) router.HandleFunc("/alerting/", alertingHandler) router.HandleFunc("/alert_reset/", alertResetHandler) router.HandleFunc("/annotate/", annotate.Handler) router.HandleFunc("/compare/", templateHandler("compare.html")) router.HandleFunc("/kernel/", templateHandler("kernel.html")) router.HandleFunc("/_/kernel/", kernelJSONHandler) router.HandleFunc("/calc/", calcHandler) router.HandleFunc("/help/", helpHandler) router.HandleFunc("/oauth2callback/", login.OAuth2CallbackHandler) router.HandleFunc("/logout/", login.LogoutHandler) router.HandleFunc("/loginstatus/", login.StatusHandler) http.Handle("/", util.LoggingGzipRequestResponse(router)) glog.Infoln("Ready to serve.") glog.Fatal(http.ListenAndServe(*port, nil)) }
func main() { // Setup DB flags. dbConf := db.DBConfigFromFlags() common.InitWithMetrics("skiaperf", graphiteServer) Init() if !*local { if err := dbConf.GetPasswordFromMetadata(); err != nil { glog.Fatal(err) } } if err := dbConf.InitDB(); err != nil { glog.Fatal(err) } stats.Start(nanoTileStore, git) alerting.Start(nanoTileStore, *apikey) // By default use a set of credentials setup for localhost access. var cookieSalt = "notverysecret" var clientID = "31977622648-1873k0c1e5edaka4adpv1ppvhr5id3qm.apps.googleusercontent.com" var clientSecret = "cw0IosPu4yjaG2KWmppj2guj" var redirectURL = fmt.Sprintf("http://localhost%s/oauth2callback/", *port) if !*local { cookieSalt = metadata.Must(metadata.ProjectGet(metadata.COOKIESALT)) clientID = metadata.Must(metadata.ProjectGet(metadata.CLIENT_ID)) clientSecret = metadata.Must(metadata.ProjectGet(metadata.CLIENT_SECRET)) redirectURL = "https://perf.skia.org/oauth2callback/" } login.Init(clientID, clientSecret, redirectURL, cookieSalt, login.DEFAULT_SCOPE, login.DEFAULT_DOMAIN_WHITELIST, *local) glog.Infoln("Begin loading data.") // Resources are served directly. router := mux.NewRouter() router.PathPrefix("/res/").HandlerFunc(makeResourceHandler()) router.HandleFunc("/", mainHandler) router.HandleFunc("/shortcuts/", shortcutHandler) router.PathPrefix("/tiles/").HandlerFunc(tileHandler) router.PathPrefix("/single/").HandlerFunc(singleHandler) router.PathPrefix("/query/").HandlerFunc(queryHandler) router.HandleFunc("/commits/", commitsHandler) router.HandleFunc("/shortcommits/", shortCommitsHandler) router.HandleFunc("/trybots/", trybotHandler) router.HandleFunc("/clusters/", clustersHandler) router.HandleFunc("/clustering/", clusteringHandler) router.PathPrefix("/cl/").HandlerFunc(clHandler) router.PathPrefix("/activitylog/").HandlerFunc(activityHandler) router.HandleFunc("/alerts/", alertsHandler) router.HandleFunc("/alerting/", alertingHandler) router.HandleFunc("/alert_reset/", alertResetHandler) router.HandleFunc("/annotate/", annotate.Handler) router.HandleFunc("/compare/", compareHandler) router.HandleFunc("/calc/", calcHandler) router.HandleFunc("/help/", helpHandler) router.HandleFunc("/oauth2callback/", login.OAuth2CallbackHandler) router.HandleFunc("/logout/", login.LogoutHandler) router.HandleFunc("/loginstatus/", login.StatusHandler) http.Handle("/", util.LoggingGzipRequestResponse(router)) glog.Infoln("Ready to serve.") glog.Fatal(http.ListenAndServe(*port, nil)) }