func main() { var err error connectionOptions := pgx.ConnectionParameters{ Host: "localhost", User: "******", Password: "******", Database: "rowlf_development"} poolOptions := pgx.ConnectionPoolOptions{MaxConnections: 10} pool, err = pgx.NewConnectionPool(connectionOptions, poolOptions) if err != nil { fmt.Fprintf(os.Stderr, "Unable to create connection pool: %v\n", err) os.Exit(1) } http.HandleFunc("/", handler) err = http.ListenAndServe("localhost:3000", nil) if err != nil { log.Fatal(err) } }
func init() { var err error var yf *yaml.File flag.StringVar(&config.listenAddress, "address", "127.0.0.1", "address to listen on") flag.StringVar(&config.listenPort, "port", "8080", "port to listen on") flag.StringVar(&config.assetPath, "assetpath", "assets", "path to assets") flag.StringVar(&config.configPath, "config", "config.yml", "path to config file") flag.Parse() givenCliArgs := make(map[string]bool) flag.Visit(func(f *flag.Flag) { givenCliArgs[f.Name] = true }) if config.configPath, err = filepath.Abs(config.configPath); err != nil { fmt.Fprintf(os.Stderr, "Invalid config path: %v\n", err) os.Exit(1) } if config.assetPath, err = filepath.Abs(config.assetPath); err != nil { fmt.Fprintf(os.Stderr, "Invalid asset path: %v\n", err) os.Exit(1) } if yf, err = yaml.ReadFile(config.configPath); err != nil { fmt.Fprintln(os.Stderr, err.Error()) os.Exit(1) } if !givenCliArgs["address"] { if address, err := yf.Get("address"); err == nil { config.listenAddress = address } } if !givenCliArgs["assetpath"] { if assetpath, err := yf.Get("assetpath"); err == nil { config.assetPath = assetpath } } if !givenCliArgs["port"] { if port, err := yf.Get("port"); err == nil { config.listenPort = port } } var connectionParameters pgx.ConnectionParameters if connectionParameters, err = extractConnectionOptions(yf); err != nil { fmt.Fprintln(os.Stderr, err.Error()) os.Exit(1) } if err = migrate(connectionParameters); err != nil { fmt.Fprintln(os.Stderr, err.Error()) os.Exit(1) } poolOptions := pgx.ConnectionPoolOptions{MaxConnections: 5, AfterConnect: afterConnect} pool, err = pgx.NewConnectionPool(connectionParameters, poolOptions) if err != nil { fmt.Fprintf(os.Stderr, "Unable to create database connection pool: %v\n", err) os.Exit(1) } }