Mercurial > gemma
annotate style-templates/upload-styles.sh @ 4837:3b0ec9b56d7c
Merged
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Fri, 08 Nov 2019 13:10:56 +0100 |
parents | 15372dd971e9 |
children | 0098cfd602be |
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 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
22 $ME [OPTION]... |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
23 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
24 Upload map styles to gemma. |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
25 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
26 Options: |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
27 -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
|
28 -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
|
29 -u, --g_user=GUSER login to gemma as user GUSER. Default "sophie". |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
30 --g_pw=GPW password for GUSER. Default "so2Phie4". |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
31 --help display this help and exit |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
32 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
33 EOF |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
34 } |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
35 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
36 fatal() |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
37 { |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
38 echo >&2 "$1" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
39 exit 23 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
40 } |
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 # Defaults: |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
43 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
44 g_port=8000 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
45 g_host="localhost" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
46 g_user="sophie" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
47 g_pw="so2Phie4" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
48 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
49 # Parse options: |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
50 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
51 OPTS=`getopt \ |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
52 -l help,g_port:,g_host:,g_user:,g_pw: \ |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
53 -o P:g:u: -n "$ME" -- "$@"` |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
54 [ $? -eq 0 ] || { usage ; exit 1 ; } |
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 eval set -- "$OPTS" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
57 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
58 while true ; do |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
59 case "$1" in |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
60 --g_port|-P) |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
61 g_port="$2" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
62 shift 2 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
63 ;; |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
64 --g_host|-g) |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
65 g_host="$2" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
66 shift 2 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
67 ;; |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
68 --g_user|-u) |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
69 g_user="$2" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
70 shift 2 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
71 ;; |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
72 --g_pw) |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
73 g_pw="$2" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
74 shift 2 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
75 ;; |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
76 --help) |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
77 { usage ; exit 0 ; } |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
78 ;; |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
79 --) |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
80 shift |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
81 break |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
82 ;; |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
83 esac |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
84 done |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
85 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
86 if [ $# != 0 ] ; then |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
87 { usage ; exit 23 ; } |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
88 fi |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
89 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
90 # Main ------------------------------------------------------------ |
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 # Login to gemma server |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
93 login=$(curl -f -s -S -X POST \ |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
94 -d "{\"user\":\"${g_user}\",\"password\":\"${g_pw}\"}" \ |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
95 "http://${g_host}:${g_port}/api/login") |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
96 token=$(jq -r '.token' <<<"$login") |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
97 if [ -z "$token" ] |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
98 then |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
99 echo "could not login to gemma server" >&2 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
100 exit 1 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
101 fi |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
102 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
103 roles=$(jq -r '.roles' <<<"$login") |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
104 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
105 basedir=$( dirname $( realpath "${BASH_SOURCE[0]}" )) |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
106 datadir="${basedir}/." |
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 if jq -e 'any(. == "sys_admin")' <<<"$roles" > /dev/null |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
109 then |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
110 echo "== Configuring geoserver styles" >&2 |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
111 for style in $(basename -s .sld-template $(ls $datadir/*.sld-template)) |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
112 do |
4631
15372dd971e9
Made upload-styles.sh a little more verbose.
Sascha Wilde <wilde@intevation.de>
parents:
4481
diff
changeset
|
113 echo "uploading $style ..." |
4481
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
114 curl -f -s -S -H "X-Gemma-Auth:${token}" -X POST \ |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
115 -F style=@"${datadir}/${style}.sld-template" \ |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
116 "http://${g_host}:${g_port}/api/geo/style/${style}" |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
117 done |
4631
15372dd971e9
Made upload-styles.sh a little more verbose.
Sascha Wilde <wilde@intevation.de>
parents:
4481
diff
changeset
|
118 echo 'done.' |
4481
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
119 else |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
120 echo >&2 'Not authorized as sys_admin' |
43c52a2d4f17
Add style-templates for geoserver
Bernhard Reiter <bernhard@intevation.de>
parents:
diff
changeset
|
121 fi |