view 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
line wrap: on
line source

// This is Free Software under GNU Affero General Public License v >= 3.0
// without warranty, see README.md and license for details.
//
// SPDX-License-Identifier: AGPL-3.0-or-later
// License-Filename: LICENSES/AGPL-3.0.txt
//
// Copyright (C) 2019 by via donau
//   – Österreichische Wasserstraßen-Gesellschaft mbH
// Software engineering by Intevation GmbH
//
// Author(s):
//  * Sascha L. Teichmann <sascha.teichmann@intevation.de>

package main

import (
	"context"
	"database/sql"
	"flag"
	"log"

	"github.com/jackc/pgx"
	"github.com/jackc/pgx/stdlib"
)

func process(ctx context.Context, conn *sql.Conn) error {
	// TODO: Implement me!
	return nil
}

func connect(cc pgx.ConnConfig) error {
	db := stdlib.OpenDB(cc)
	defer db.Close()

	ctx := context.Background()

	conn, err := db.Conn(ctx)
	if err != nil {
		return err
	}
	defer conn.Close()

	return process(ctx, conn)
}

func main() {
	var (
		db       = flag.String("database", "gemma", "database name")
		user     = flag.String("user", "sophie", "database user")
		host     = flag.String("host", "localhost", "database host")
		password = flag.String("password", "so2Phie4", "database password")
		port     = flag.Uint("port", 5432, "database port")
		ssl      = flag.String("ssl", "prefer", "SSL mode")
	)

	flag.Parse()
	cc, err := pgx.ParseConnectionString("sslmode=" + *ssl)
	if err != nil {
		log.Fatalf("error: %v\n", err)
	}

	// Do the rest manually to allow whitespace in user/password.
	cc.Host = *host
	cc.Port = uint16(*port)
	cc.User = *user
	cc.Password = *password
	cc.Database = *db

	if err := connect(cc); err != nil {
		log.Fatalf("error: %v\n", err)
	}
}