Mercurial > gemma
annotate cmd/oct2str/main.go @ 4648:66fcd898efd9 stree-experiment
Started with conversion tool.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 13 Oct 2019 19:22:36 +0200 |
parents | |
children | 8f745c353784 |
rev | line source |
---|---|
4648
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 // This is Free Software under GNU Affero General Public License v >= 3.0 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 // without warranty, see README.md and license for details. |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 // |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 // SPDX-License-Identifier: AGPL-3.0-or-later |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 // License-Filename: LICENSES/AGPL-3.0.txt |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 // |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 // Copyright (C) 2019 by via donau |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 // – Österreichische Wasserstraßen-Gesellschaft mbH |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 // Software engineering by Intevation GmbH |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 // |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 // Author(s): |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 // * Sascha L. Teichmann <sascha.teichmann@intevation.de> |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 package main |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 import ( |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 "context" |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 "database/sql" |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 "flag" |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 "log" |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 "github.com/jackc/pgx" |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 "github.com/jackc/pgx/stdlib" |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 ) |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 func process(ctx context.Context, conn *sql.Conn) error { |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 // TODO: Implement me! |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 return nil |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 } |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 func connect(cc pgx.ConnConfig) error { |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 db := stdlib.OpenDB(cc) |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 defer db.Close() |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 ctx := context.Background() |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 conn, err := db.Conn(ctx) |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 if err != nil { |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 return err |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 } |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 defer conn.Close() |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
43 return process(ctx, conn) |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 } |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 func main() { |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 var ( |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 db = flag.String("database", "gemma", "database name") |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 user = flag.String("user", "sophie", "database user") |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 host = flag.String("host", "localhost", "database host") |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 password = flag.String("password", "so2Phie4", "database password") |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 port = flag.Uint("port", 5432, "database port") |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 ssl = flag.String("ssl", "prefer", "SSL mode") |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 ) |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 flag.Parse() |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 cc, err := pgx.ParseConnectionString("sslmode=" + *ssl) |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
58 if err != nil { |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
59 log.Fatalf("error: %v\n", err) |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 } |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
61 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
62 // Do the rest manually to allow whitespace in user/password. |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
63 cc.Host = *host |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 cc.Port = uint16(*port) |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 cc.User = *user |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
66 cc.Password = *password |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
67 cc.Database = *db |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 if err := connect(cc); err != nil { |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 log.Fatalf("error: %v\n", err) |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
71 } |
66fcd898efd9
Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
72 } |