annotate cmd/oct2str/main.go @ 4796:199c49f967d2

Some Go clean-ups.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 25 Oct 2019 17:28:00 +0200
parents 8f745c353784
children
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"
4649
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
18 "crypto/sha1"
4648
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 "database/sql"
4649
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
20 "encoding/hex"
4648
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 "flag"
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 "log"
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23
4649
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
24 "gemma.intevation.de/gemma/pkg/octree"
4648
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 "github.com/jackc/pgx"
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 "github.com/jackc/pgx/stdlib"
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 )
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28
4649
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
29 const (
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
30 fetchOneOctreeSQL = `
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
31 SELECT
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
32 id,
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
33 octree_index
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
34 FROM waterway.sounding_results
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
35 WHERE mesh_index IS NULL
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
36 LIMIT 1`
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
37
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
38 storeSTRTreeSQL = `
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
39 UPDATE waterway.sounding_results
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
40 SET mesh_index = $1, mesh_checksum = $2
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
41 WHERE id = $3`
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
42 )
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
43
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
44 func process(ctx context.Context, conn *sql.Conn, count int) error {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
45
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
46 fetch, err := conn.PrepareContext(ctx, fetchOneOctreeSQL)
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
47 if err != nil {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
48 return err
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
49 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
50 defer fetch.Close()
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
51
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
52 store, err := conn.PrepareContext(ctx, storeSTRTreeSQL)
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
53 if err != nil {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
54 return err
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
55 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
56 defer store.Close()
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
57
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
58 var next func() bool
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
59 if count < 0 {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
60 next = func() bool { return true }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
61 } else {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
62 var c int
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
63 next = func() bool {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
64 if c < count {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
65 c++
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
66 return true
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
67 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
68 return false
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
69 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
70 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
71
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
72 loop:
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
73 for next() {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
74 switch err := func() error {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
75 tx, err := conn.BeginTx(ctx, nil)
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
76 if err != nil {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
77 return err
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
78 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
79 defer tx.Rollback()
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
80
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
81 var id int64
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
82 var data []byte
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
83
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
84 if err = tx.Stmt(fetch).QueryRowContext(ctx).Scan(&id, &data); err != nil {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
85 return err
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
86 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
87
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
88 otree, err := octree.Deserialize(data)
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
89 if err != nil {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
90 return err
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
91 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
92
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
93 unused := otree.FindUnused()
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
94
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
95 log.Printf("unused: %d\n", len(unused))
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
96
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
97 str := octree.STRTree{Entries: 16}
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
98 str.BuildWithout(otree.Tin(), unused)
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
99
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
100 out, err := str.Bytes()
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
101 if err != nil {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
102 return err
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
103 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
104 h := sha1.New()
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
105 h.Write(out)
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
106 checksum := hex.EncodeToString(h.Sum(nil))
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
107 log.Printf("hash: %s\n", checksum)
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
108
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
109 if _, err := tx.Stmt(store).ExecContext(ctx, out, checksum, id); err != nil {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
110 return err
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
111 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
112
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
113 return tx.Commit()
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
114 }(); {
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
115 case err == sql.ErrNoRows:
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
116 break loop
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
117 case err != nil:
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
118 return err
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
119 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
120 }
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
121
4648
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122 return nil
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123 }
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124
4649
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
125 func connect(cc pgx.ConnConfig, count int) error {
4648
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 db := stdlib.OpenDB(cc)
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
127 defer db.Close()
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
128
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
129 ctx := context.Background()
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
130
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
131 conn, err := db.Conn(ctx)
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132 if err != nil {
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133 return err
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
134 }
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
135 defer conn.Close()
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136
4649
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
137 return process(ctx, conn, count)
4648
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
138 }
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
139
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140 func main() {
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
141 var (
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
142 db = flag.String("database", "gemma", "database name")
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
143 user = flag.String("user", "sophie", "database user")
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
144 host = flag.String("host", "localhost", "database host")
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
145 password = flag.String("password", "so2Phie4", "database password")
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
146 port = flag.Uint("port", 5432, "database port")
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147 ssl = flag.String("ssl", "prefer", "SSL mode")
4649
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
148 count = flag.Int("count", -1, "how many sounding results to convert")
4648
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
149 )
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
150
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
151 flag.Parse()
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152 cc, err := pgx.ParseConnectionString("sslmode=" + *ssl)
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
153 if err != nil {
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
154 log.Fatalf("error: %v\n", err)
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
155 }
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
156
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
157 // 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
158 cc.Host = *host
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
159 cc.Port = uint16(*port)
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
160 cc.User = *user
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
161 cc.Password = *password
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
162 cc.Database = *db
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
163
4649
8f745c353784 Finished first version of conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 4648
diff changeset
164 if err := connect(cc, *count); err != nil {
4648
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
165 log.Fatalf("error: %v\n", err)
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
166 }
66fcd898efd9 Started with conversion tool.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
167 }