func main() { flag.Parse() addr := os.Getenv("PORT") if addr == "" { addr = *listenPort } addr = ":" + addr var fs Filesystem var storageDesc string if *storageDir != "" { fs = NewOSFilesystem(*storageDir) storageDesc = *storageDir } else { db, err := postgres.Open("", "") if err != nil { log.Fatal(err) } fs, err = NewPostgresFilesystem(db.DB) if err != nil { log.Fatal(err) } storageDesc = "Postgres" if err := discoverd.Register("shelf", addr); err != nil { log.Fatal(err) } } log.Println("Shelf serving files on " + addr + " from " + storageDesc) log.Fatal(http.ListenAndServe(addr, handler(fs))) }
func main() { username, password := waitForPostgres(serviceName) db, err := postgres.Open(serviceName, fmt.Sprintf("dbname=postgres user=%s password=%s", username, password)) if err != nil { log.Fatal(err) } r := martini.NewRouter() m := martini.New() m.Use(martini.Logger()) m.Use(martini.Recovery()) m.Use(render.Renderer()) m.Action(r.Handle) m.Map(db) r.Post("/databases", createDatabase) r.Get("/ping", ping) port := os.Getenv("PORT") if port == "" { port = "3000" } addr := ":" + port if err := discoverd.Register(serviceName+"-api", addr); err != nil { log.Fatal(err) } log.Fatal(http.ListenAndServe(addr, m)) }
func main() { db, err := postgres.Open("", "") if err != nil { log.Fatal(err) } m := migrate.NewMigrations() m.Add(1, "CREATE SEQUENCE hits") if err := m.Migrate(db.DB); err != nil { log.Fatal(err) } stmt, err := db.Prepare("SELECT nextval(hits)") if err != nil { log.Fatal(err) } port := os.Getenv("PORT") http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { var count int if err := stmt.QueryRow().Scan(&count); err != nil { w.WriteHeader(500) w.Write([]byte(err.Error())) return } fmt.Fprintf(w, "Hello from Go on Flynn: port=%s hits=%d", port, count) }) fmt.Println("hitcounter listening on port", port) log.Fatal(http.ListenAndServe(":"+port, nil)) }