annotate style-templates/upload-styles.sh @ 5560:f2204f91d286

Join the log lines of imports to the log exports to recover data from them. Used in SR export to extract information that where in the meta json but now are only found in the log.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 09 Feb 2022 18:34:40 +0100
parents 136dc9e528c4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
1 #!/bin/bash -e
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
2 #
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
3 # This is Free Software under GNU Affero General Public License v >= 3.0
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
4 # without warranty, see README.md and license for details.
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
5 #
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
6 # SPDX-License-Identifier: AGPL-3.0-or-later
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
7 # License-Filename: LICENSES/AGPL-3.0.txt
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
8 #
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
9 # Copyright (C) 2019 by via donau
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
10 # – Österreichische Wasserstraßen-Gesellschaft mbH
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
11 # Software engineering by Intevation GmbH
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
12 #
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
13 # Author(s):
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
14 # * Sascha Wilde <wilde@intevation.de>
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
15
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
16 ME=`basename "$0"`
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
17 BASEDIR=`dirname "$0"`
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
18
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
19 usage()
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
20 {
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
21 cat <<EOF
4917
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
22 $ME [OPTION]... [input-file]...
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
23
4917
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
24 Upload map styles to gemma. Uses either the given input files or all files
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
25 in the directory where this script resides. Input files must have the name
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
26 of a published layer in gemma and the suffix .sld-template.
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
27
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
28 Options:
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
29 -P, --g_port=GPORT connect to gemma server at GPORT. Default 8000.
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
30 -g, --g_host=GHOST connect to gemma server on GHOST. Default "localhost".
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
31 -u, --g_user=GUSER login to gemma as user GUSER. Default "sophie".
4986
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
32 -d, --extra_dir=DIR search DIR in addition to the default styles directory.
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
33 This option can be specified multiple times.
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
34 --g_pw=GPW password for GUSER. Default "so2Phie4".
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
35 --help display this help and exit
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
36
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
37 EOF
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
38 }
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
39
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
40 fatal()
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
41 {
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
42 echo >&2 "$1"
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
43 exit 23
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
44 }
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
45
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
46 # Defaults:
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
47
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
48 g_port=8000
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
49 g_host="localhost"
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
50 g_user="sophie"
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
51 g_pw="so2Phie4"
4986
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
52 declare -a extra_dirs
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
53
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
54 # Parse options:
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
55
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
56 OPTS=`getopt \
4986
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
57 -l help,g_port:,g_host:,g_user:,g_pw:,extra_dir: \
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
58 -o P:g:u:d: -n "$ME" -- "$@"`
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
59 [ $? -eq 0 ] || { usage ; exit 1 ; }
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
60
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
61 eval set -- "$OPTS"
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
62
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
63 while true ; do
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
64 case "$1" in
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
65 --g_port|-P)
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
66 g_port="$2"
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
67 shift 2
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
68 ;;
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
69 --g_host|-g)
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
70 g_host="$2"
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
71 shift 2
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
72 ;;
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
73 --g_user|-u)
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
74 g_user="$2"
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
75 shift 2
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
76 ;;
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
77 --g_pw)
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
78 g_pw="$2"
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
79 shift 2
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
80 ;;
4986
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
81 --extra_dir|-d)
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
82 extra_dirs+=("$2")
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
83 shift 2
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
84 ;;
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
85 --help)
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
86 { usage ; exit 0 ; }
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
87 ;;
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
88 --)
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
89 shift
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
90 break
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
91 ;;
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
92 esac
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
93 done
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
94
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
95 # Main ------------------------------------------------------------
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
96
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
97 # Login to gemma server
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
98 login=$(curl -f -s -S -X POST \
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
99 -d "{\"user\":\"${g_user}\",\"password\":\"${g_pw}\"}" \
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
100 "http://${g_host}:${g_port}/api/login")
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
101 token=$(jq -r '.token' <<<"$login")
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
102 if [ -z "$token" ]
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
103 then
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
104 echo "could not login to gemma server" >&2
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
105 exit 1
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
106 fi
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
107
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
108 roles=$(jq -r '.roles' <<<"$login")
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
109
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
110 basedir=$( dirname $( realpath "${BASH_SOURCE[0]}" ))
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
111 datadir="${basedir}/."
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
112
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
113 if jq -e 'any(. == "sys_admin")' <<<"$roles" > /dev/null
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
114 then
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
115 echo "== Configuring geoserver styles" >&2
4917
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
116 if [ $# -gt 0 ]; then
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
117 files=("$@")
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
118 else
4986
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
119 files=($(find "$datadir" "${extra_dirs[@]}" \
136dc9e528c4 Added option --extra_dir to upload-styles.sh script.
Sascha Wilde <wilde@intevation.de>
parents: 4985
diff changeset
120 -name "*.sld-template" -or -name "*.zip"))
4917
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
121 fi
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
122 for file in ${files[@]}
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
123 do
4920
a9fac2394238 Allow script based upload of zipped styles
Tom Gottfried <tom@intevation.de>
parents: 4917
diff changeset
124 style=$(basename $(basename "$file" .zip) .sld-template)
4917
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
125 echo "uploading ${style} ..."
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
126 curl -f -s -S -H "X-Gemma-Auth:${token}" -X POST \
4917
0098cfd602be Allow uploading of single SLD templates
Tom Gottfried <tom@intevation.de>
parents: 4631
diff changeset
127 -F style=@"${file}" \
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
128 "http://${g_host}:${g_port}/api/geo/style/${style}"
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
129 done
4631
15372dd971e9 Made upload-styles.sh a little more verbose.
Sascha Wilde <wilde@intevation.de>
parents: 4481
diff changeset
130 echo 'done.'
4481
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
131 else
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
132 echo >&2 'Not authorized as sys_admin'
43c52a2d4f17 Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
133 fi