changeset 3985:5bae55d3966e pdfprint

merge with default
author Thomas Junk <thomas.junk@intevation.de>
date Wed, 17 Jul 2019 14:12:59 +0200
parents 8ec8d9bc5468 (current diff) 5396581cf203 (diff)
children 3560cd3ec7d3
files
diffstat 13 files changed, 155 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/cmd/gemma/main.go	Wed Jul 17 12:48:19 2019 +0200
+++ b/cmd/gemma/main.go	Wed Jul 17 14:12:59 2019 +0200
@@ -91,7 +91,7 @@
 		done <- server.ListenAndServe()
 	}()
 
-	sigChan := make(chan os.Signal)
+	sigChan := make(chan os.Signal, 1)
 	signal.Notify(sigChan, os.Interrupt, os.Kill, syscall.SIGTERM)
 
 	select {
--- a/pkg/controllers/bottlenecks.go	Wed Jul 17 12:48:19 2019 +0200
+++ b/pkg/controllers/bottlenecks.go	Wed Jul 17 14:12:59 2019 +0200
@@ -519,7 +519,6 @@
 		// Too late for HTTP status message.
 		log.Printf("error: %v\n", err)
 	}
-	return
 }
 
 func bottleneckAvailableFairwayDepth(rw http.ResponseWriter, req *http.Request) {
--- a/pkg/controllers/importconfig.go	Wed Jul 17 12:48:19 2019 +0200
+++ b/pkg/controllers/importconfig.go	Wed Jul 17 14:12:59 2019 +0200
@@ -105,7 +105,7 @@
 	oldPasswd, ok := pc.Attributes["password"]
 	pc.User = session.User
 	pc.Attributes = common.Attributes{}
-	if ok == true {
+	if ok {
 		pc.Attributes["password"] = oldPasswd
 	}
 	pc.Attributes.Marshal(config) // Marshal only overwrites keys present in config
--- a/pkg/controllers/pwreset.go	Wed Jul 17 12:48:19 2019 +0200
+++ b/pkg/controllers/pwreset.go	Wed Jul 17 14:12:59 2019 +0200
@@ -82,9 +82,9 @@
 const pwResetRole = "sys_admin"
 
 var (
-	errTooMuchPasswordResets = errors.New("Too many password resets")
-	errNoSuchUser            = errors.New("User does not exist")
-	errInvalidUser           = errors.New("Invalid user")
+	errTooMuchPasswordResets = errors.New("too many password resets")
+	errNoSuchUser            = errors.New("user does not exist")
+	errInvalidUser           = errors.New("invalid user")
 )
 
 var (
@@ -111,12 +111,12 @@
 <html lang="en">
   <head>
     <meta charset="utf-8" />
-	<title>Password reset done</title>
+    <title>Password reset done</title>
   </head>
   <body>
     <p>The password reset for user <strong><tt>{{ .User }}</tt></strong> successfully done.</p>
-	<p>New password: <strong><tt>{{ .Password }}</tt></strong></p>
-	<p><a href="/">Go to login page.</a></p>
+    <p>New password: <strong><tt>{{ .Password }}</tt></strong></p>
+    <p><a href="/">Go to login page.</a></p>
   </body>
 </html>
 `))
@@ -285,7 +285,7 @@
 			err = tx.QueryRowContext(ctx, findRequestSQL, hash).Scan(&user)
 			switch {
 			case err == sql.ErrNoRows:
-				return errors.New("This URL is no longer valid.")
+				return errors.New("this URL is no longer valid")
 			case err != nil:
 				return err
 			}
@@ -295,7 +295,7 @@
 				return err
 			}
 			if n, err2 := res.RowsAffected(); err2 == nil && n == 0 {
-				return errors.New("User not found")
+				return errors.New("user not found")
 			}
 			if _, err = tx.ExecContext(ctx, deleteRequestSQL, hash); err != nil {
 				return err
--- a/pkg/controllers/srimports.go	Wed Jul 17 12:48:19 2019 +0200
+++ b/pkg/controllers/srimports.go	Wed Jul 17 14:12:59 2019 +0200
@@ -105,7 +105,7 @@
 		case "false", "0":
 			negateZ = false
 		default:
-			return fmt.Errorf("Unknown negate-z '%s'", v)
+			return fmt.Errorf("unknown negate-z '%s'", v)
 		}
 		sr.NegateZ = &negateZ
 	}
@@ -118,7 +118,7 @@
 		case "false", "0", "multibeam", "multi-beam":
 			singleBeam = false
 		default:
-			return fmt.Errorf("Unknown single-beam '%s'", v)
+			return fmt.Errorf("unknown single-beam '%s'", v)
 		}
 		sr.SingleBeam = &singleBeam
 	}
--- a/pkg/imports/sr.go	Wed Jul 17 12:48:19 2019 +0200
+++ b/pkg/imports/sr.go	Wed Jul 17 14:12:59 2019 +0200
@@ -141,9 +141,6 @@
   ST_AsBinary(ST_Transform(area::geometry, best_utm(area)))
 `
 
-	reprojectPointsSQL = `
-SELECT ST_AsBinary(ST_Transform(ST_GeomFromWKB($1, $2::integer), $3::integer))`
-
 	reprojectPointsBufferedSQL = `
 SELECT
   ST_AsBinary(ST_Transform(ST_GeomFromWKB($1, $2::integer), $3::integer)),
@@ -556,8 +553,6 @@
 		feedback.Info("Number triangles: %d.", len(tri.Triangles)/3)
 		feedback.Info("Clipping triangles from new mesh.")
 
-	} else { // multi beam
-		// Nothing special
 	}
 
 	start = time.Now()
--- a/schema/gemma.sql	Wed Jul 17 12:48:19 2019 +0200
+++ b/schema/gemma.sql	Wed Jul 17 14:12:59 2019 +0200
@@ -206,6 +206,23 @@
 
 
 --
+-- GEMA meta data
+--
+CREATE TABLE gemma_schema_version (
+    version int PRIMARY KEY,
+    update_date timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE OR REPLACE FUNCTION get_schema_version() RETURNS int
+    LANGUAGE plpgsql
+    AS $$
+    BEGIN
+        RETURN ( SELECT max(version) FROM gemma_schema_version );
+    END;
+$$;
+
+
+--
 -- GEMMA data
 --
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schema/update-db.sh	Wed Jul 17 14:12:59 2019 +0200
@@ -0,0 +1,109 @@
+#!/bin/bash -e
+# 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 Wilde <wilde@intevation.de>
+
+ME=`basename "$0"`
+BASEDIR=`dirname "$0"`
+
+usage()
+{
+  cat <<EOF
+$ME [OPTION]...
+
+Options:
+  -d, --db=NAME    create the database NAME.  Default: "gemma"
+  -p, --port=PORT  connect do the postgresql cluster at PORT.
+                   Default is the postgresql standard port 5432
+      --help       display this help and exit
+
+EOF
+}
+
+fatal()
+{
+  echo >&2 "$1"
+  exit 23
+}
+
+genpw()
+# $1 - length
+{
+  PW=''
+  until [ "$(grep '[^[:alnum:]]' <<<$PW)" -a "$(grep '[[:digit:]]' <<<$PW)" ]
+  do
+    PW=$(dd count=1 if=/dev/urandom 2>/dev/null \
+           | tr -cd '[:alnum:],._!?-' | tail -c "$1")
+  done
+  echo "$PW"
+}
+
+# Defaults:
+
+db=gemma
+port=5432
+
+# Parse options:
+
+OPTS=`getopt \
+      -l help,db:,port: \
+      -o d:p: -n "$ME" -- "$@"`
+[ $? -eq 0 ] || { usage ; exit 1 ; }
+
+eval set -- "$OPTS"
+
+while true ; do
+  case "$1" in
+    --db|-d)
+      db="$2"
+      shift 2
+      ;;
+    --port|-p)
+      port="$2"
+      shift 2
+      ;;
+    --help)
+      { usage ; exit 0 ; }
+      ;;
+    --)
+      shift
+      break
+      ;;
+  esac
+done
+
+
+get_version()
+{
+  local ver
+  if ver=$( psql -qtA -p "$port" -d "$db" \
+                 -c 'SELECT get_schema_version()' 2>/dev/null )
+  then
+    echo $ver
+  else
+    echo '-1'
+  fi
+}
+
+# Main ------------------------------------------------------------
+
+current_ver=$( get_version )
+
+for d in $BASEDIR/updates/* ; do
+  new_ver=$( basename $d )
+  if [ -d "$d" -a "$new_ver" -gt $current_ver ] ; then
+    echo "Running updates for $new_ver ..."
+
+    sql=$( cat `echo "$d/"* | sort -n` )
+    psql -1 -q -p "$port" -d "$db" -c "$sql"
+  fi
+done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schema/updates/0000/01.add_schema_version.sql	Wed Jul 17 14:12:59 2019 +0200
@@ -0,0 +1,12 @@
+CREATE TABLE gemma_schema_version (
+    version int PRIMARY KEY,
+    update_date timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE OR REPLACE FUNCTION get_schema_version() RETURNS int
+    LANGUAGE plpgsql
+    AS $$
+    BEGIN
+        RETURN ( SELECT max(version) FROM gemma_schema_version );
+    END;
+$$;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schema/updates/0000/99.set_version.sql	Wed Jul 17 14:12:59 2019 +0200
@@ -0,0 +1,1 @@
+INSERT INTO gemma_schema_version(version) VALUES (0);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schema/updates/0301/99.set_version.sql	Wed Jul 17 14:12:59 2019 +0200
@@ -0,0 +1,1 @@
+INSERT INTO gemma_schema_version(version) VALUES (301);
--- a/schema/updates/1000/01.pwreset.sql	Wed Jul 17 12:48:19 2019 +0200
+++ b/schema/updates/1000/01.pwreset.sql	Wed Jul 17 14:12:59 2019 +0200
@@ -1,7 +1,4 @@
-BEGIN;
-
 GRANT INSERT, DELETE, UPDATE ON sys_admin.password_reset_requests TO sys_admin;
 
-ALTER TABLE sys_admin.password_reset_requests ADD CONSTRAINT password_reset_requests_username_key UNIQUE(username);
-
-COMMIT;
+ALTER TABLE sys_admin.password_reset_requests
+  ADD CONSTRAINT password_reset_requests_username_key UNIQUE(username);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schema/updates/1000/99.set_version.sql	Wed Jul 17 14:12:59 2019 +0200
@@ -0,0 +1,1 @@
+INSERT INTO gemma_schema_version(version) VALUES (1000);