comparison cmd/octreediff/db.go @ 2465:86c7a023400e octree-diff

Started experimental octree diff branch.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 25 Feb 2019 17:02:33 +0100
parents
children
comparison
equal deleted inserted replaced
2391:123e7f43b676 2465:86c7a023400e
1 // This is Free Software under GNU Affero General Public License v >= 3.0
2 // without warranty, see README.md and license for details.
3 //
4 // SPDX-License-Identifier: AGPL-3.0-or-later
5 // License-Filename: LICENSES/AGPL-3.0.txt
6 //
7 // Copyright (C) 2018 by via donau
8 // – Österreichische Wasserstraßen-Gesellschaft mbH
9 // Software engineering by Intevation GmbH
10 //
11 // Author(s):
12 // * Sascha L. Teichmann <sascha.teichmann@intevation.de>
13
14 package main
15
16 import (
17 "database/sql"
18 "flag"
19
20 "github.com/jackc/pgx"
21 "github.com/jackc/pgx/stdlib"
22 )
23
24 var (
25 dbhost = flag.String("dbhost", "localhost", "database host")
26 dbport = flag.Uint("dbport", 5432, "database port")
27 dbname = flag.String("dbname", "gemma", "database user")
28 dbuser = flag.String("dbuser", "scott", "database user")
29 dbpassword = flag.String("dbpw", "tiger", "database password")
30 dbssl = flag.String("dbssl", "prefer", "database SSL mode")
31 )
32
33 func run(fn func(*sql.DB) error) error {
34
35 // To ease SSL config ride a bit on parsing.
36 cc, err := pgx.ParseConnectionString("sslmode=" + *dbssl)
37 if err != nil {
38 return err
39 }
40
41 // Do the rest manually to allow whitespace in user/password.
42 cc.Host = *dbhost
43 cc.Port = uint16(*dbport)
44 cc.User = *dbuser
45 cc.Password = *dbpassword
46 cc.Database = *dbname
47
48 db := stdlib.OpenDB(cc)
49 defer db.Close()
50
51 return fn(db)
52 }