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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }