2016-11-11 16:28:37 +00:00
|
|
|
#!/bin/bash
|
|
|
|
set -o errexit
|
|
|
|
set -o pipefail
|
|
|
|
set -o nounset
|
|
|
|
|
2016-11-28 22:15:47 +00:00
|
|
|
|
|
|
|
###########################################
|
|
|
|
# OpenMapTiles quickstart.sh for x86_64 linux
|
|
|
|
#
|
2020-05-15 05:14:14 +00:00
|
|
|
# Usage:
|
|
|
|
# ./quickstart.sh [--empty] [area [geofabrik|osmfr|bbbike]]
|
|
|
|
#
|
|
|
|
# Use a preloaded docker image to speed up, unless the --empty flag is used.
|
|
|
|
#
|
|
|
|
# Servers:
|
|
|
|
# geofabik: http://download.geofabrik.de (default)
|
|
|
|
# osmfr: http://download.openstreetmap.fr (default for hierarchical area names)
|
|
|
|
# bbbike: https://www.bbbike.org (default for capitalized area names)
|
|
|
|
#
|
2016-11-28 15:44:30 +00:00
|
|
|
# Example calls ...
|
2016-11-28 22:15:47 +00:00
|
|
|
# ./quickstart.sh
|
|
|
|
# ./quickstart.sh africa
|
2020-05-15 05:14:14 +00:00
|
|
|
# ./quickstart.sh africa geofabrik
|
|
|
|
# ./quickstart.sh africa osmfr
|
2016-11-28 22:15:47 +00:00
|
|
|
# ./quickstart.sh alabama
|
|
|
|
# ./quickstart.sh alaska
|
|
|
|
# ./quickstart.sh albania
|
|
|
|
# ./quickstart.sh alberta
|
|
|
|
# ./quickstart.sh alps
|
2020-05-15 05:14:14 +00:00
|
|
|
# ./quickstart.sh europe/austria
|
|
|
|
# ./quickstart.sh europe/austria/salzburg osmfr
|
|
|
|
# ./quickstart.sh Adelaide
|
|
|
|
# ./quickstart.sh Adelaide bbbike
|
2016-11-28 15:44:30 +00:00
|
|
|
# ....
|
2016-11-28 22:15:47 +00:00
|
|
|
#
|
2020-06-04 19:45:04 +00:00
|
|
|
# to list geofabrik areas: make list-geofabrik or make list-bbbike
|
2016-11-28 15:44:30 +00:00
|
|
|
# see more QUICKSTART.md
|
2016-11-27 19:01:01 +00:00
|
|
|
#
|
|
|
|
|
2020-05-15 05:14:14 +00:00
|
|
|
# If --empty is not given, use preloaded docker image to speed up
|
|
|
|
if [ $# -gt 0 ] && [[ $1 == --empty ]]; then
|
|
|
|
export USE_PRELOADED_IMAGE=""
|
|
|
|
shift
|
|
|
|
else
|
|
|
|
export USE_PRELOADED_IMAGE=true
|
|
|
|
fi
|
|
|
|
|
2016-11-27 10:31:43 +00:00
|
|
|
if [ $# -eq 0 ]; then
|
Rework download area support (#908)
Closes #904
* Make all data-related targets like `download*`, `import-osm`, `import-borders`, and `generate-tiles` into `area`-aware -- making it possible for multiple data files to coexist inside the `./data` dir.
* Add `make download area=... [url=...]` command to automatically download any kind of area by checking Geofabrik, BBBike, and OSM.fr, optionally from a custom URL. Supports `area=planet` too.
* Do not re-download area with `make download-*` if it already exists.
* Automatically rename `<area>-latest.osm.pbf` into `<area>.osm.pbf`
* If `area=...` parameter is not given to `make`, see if there is exactly one `*.osm.pbf` file, and if so, use `*` as the `area`.
* Configure many variables in the .env file, overriding the defaults in tools
* If `<area>.osm.pbf` exists, but `<area>.dc-config.pbf` is missing, generate it using `download-osm make-dc` command.
Also:
* closes #614
* closes #647
* partially addresses #261
2020-06-03 19:37:45 +00:00
|
|
|
# default test area
|
|
|
|
export area=albania
|
|
|
|
echo "No parameter - set area=$area "
|
2016-11-28 22:15:47 +00:00
|
|
|
else
|
Rework download area support (#908)
Closes #904
* Make all data-related targets like `download*`, `import-osm`, `import-borders`, and `generate-tiles` into `area`-aware -- making it possible for multiple data files to coexist inside the `./data` dir.
* Add `make download area=... [url=...]` command to automatically download any kind of area by checking Geofabrik, BBBike, and OSM.fr, optionally from a custom URL. Supports `area=planet` too.
* Do not re-download area with `make download-*` if it already exists.
* Automatically rename `<area>-latest.osm.pbf` into `<area>.osm.pbf`
* If `area=...` parameter is not given to `make`, see if there is exactly one `*.osm.pbf` file, and if so, use `*` as the `area`.
* Configure many variables in the .env file, overriding the defaults in tools
* If `<area>.osm.pbf` exists, but `<area>.dc-config.pbf` is missing, generate it using `download-osm make-dc` command.
Also:
* closes #614
* closes #647
* partially addresses #261
2020-06-03 19:37:45 +00:00
|
|
|
export area=$1
|
2016-11-27 10:31:43 +00:00
|
|
|
fi
|
2020-05-06 15:27:14 +00:00
|
|
|
|
2020-05-15 05:14:14 +00:00
|
|
|
if [ $# -eq 2 ]; then
|
Rework download area support (#908)
Closes #904
* Make all data-related targets like `download*`, `import-osm`, `import-borders`, and `generate-tiles` into `area`-aware -- making it possible for multiple data files to coexist inside the `./data` dir.
* Add `make download area=... [url=...]` command to automatically download any kind of area by checking Geofabrik, BBBike, and OSM.fr, optionally from a custom URL. Supports `area=planet` too.
* Do not re-download area with `make download-*` if it already exists.
* Automatically rename `<area>-latest.osm.pbf` into `<area>.osm.pbf`
* If `area=...` parameter is not given to `make`, see if there is exactly one `*.osm.pbf` file, and if so, use `*` as the `area`.
* Configure many variables in the .env file, overriding the defaults in tools
* If `<area>.osm.pbf` exists, but `<area>.dc-config.pbf` is missing, generate it using `download-osm make-dc` command.
Also:
* closes #614
* closes #647
* partially addresses #261
2020-06-03 19:37:45 +00:00
|
|
|
osm_server=$2
|
2020-05-15 05:14:14 +00:00
|
|
|
fi
|
|
|
|
|
2016-11-28 22:15:47 +00:00
|
|
|
## Min versions ...
|
2016-11-27 19:01:01 +00:00
|
|
|
MIN_COMPOSE_VER=1.7.1
|
2017-05-11 23:34:25 +00:00
|
|
|
MIN_DOCKER_VER=1.12.3
|
2016-11-15 22:02:28 +00:00
|
|
|
STARTTIME=$(date +%s)
|
2017-02-03 15:46:49 +00:00
|
|
|
STARTDATE=$(date +"%Y-%m-%dT%H:%M%z")
|
2016-11-15 22:02:28 +00:00
|
|
|
|
2016-11-28 22:15:47 +00:00
|
|
|
log_file=./quickstart.log
|
2016-11-15 22:02:28 +00:00
|
|
|
rm -f $log_file
|
2016-12-09 15:59:47 +00:00
|
|
|
echo " "
|
|
|
|
echo "====================================================================================="
|
|
|
|
echo " Docker check & Download images "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2017-01-06 10:41:14 +00:00
|
|
|
echo "====> : Please check the Docker and docker-compose version!"
|
2023-01-30 13:04:47 +00:00
|
|
|
echo " : We are using docker-compose v3 file format! see more at https://docs.docker.com/"
|
2017-01-06 10:41:14 +00:00
|
|
|
echo " : Minimum required Docker version: $MIN_DOCKER_VER+"
|
|
|
|
echo " : Minimum required docker-compose version: $MIN_COMPOSE_VER+"
|
|
|
|
echo " : See the .travis build for the currently supported versions."
|
|
|
|
echo " : Your docker system:"
|
2023-03-15 21:16:00 +00:00
|
|
|
|
|
|
|
if ! command -v docker-compose &> /dev/null; then
|
|
|
|
DOCKER_COMPOSE_HYPHEN=false
|
|
|
|
else
|
|
|
|
DOCKER_COMPOSE_HYPHEN=true
|
|
|
|
fi
|
|
|
|
|
|
|
|
function docker_compose_command () {
|
|
|
|
if $DOCKER_COMPOSE_HYPHEN; then
|
|
|
|
docker-compose $@
|
|
|
|
else
|
|
|
|
docker compose $@
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2016-12-09 15:59:47 +00:00
|
|
|
docker --version
|
2023-03-15 21:16:00 +00:00
|
|
|
docker_compose_command --version
|
2016-12-09 15:59:47 +00:00
|
|
|
|
2017-05-03 06:09:35 +00:00
|
|
|
# based on: http://stackoverflow.com/questions/16989598/bash-comparing-version-numbers
|
2022-02-04 12:50:47 +00:00
|
|
|
function version { echo "$@" | tr -d 'v' | tr -cs '0-9.' '.' | awk -F. '{ printf("%03d%03d%03d\n", $1,$2,$3); }'; }
|
2017-01-20 15:25:15 +00:00
|
|
|
|
2023-03-15 21:16:00 +00:00
|
|
|
COMPOSE_VER=$(docker_compose_command version --short)
|
2017-01-20 15:25:15 +00:00
|
|
|
if [ "$(version "$COMPOSE_VER")" -lt "$(version "$MIN_COMPOSE_VER")" ]; then
|
2021-01-10 15:55:52 +00:00
|
|
|
echo "ERR: Your Docker-compose version is known to have bugs, please update docker-compose!"
|
2016-12-09 15:59:47 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
DOCKER_VER="$(docker -v | awk -F '[ ,]+' '{ print $3 }')"
|
2017-01-20 15:25:15 +00:00
|
|
|
if [ "$(version "$DOCKER_VER")" -lt "$(version "$MIN_DOCKER_VER")" ]; then
|
2017-01-06 10:41:14 +00:00
|
|
|
echo "ERR: Your Docker version is not compatible. Please Update docker!"
|
2016-12-09 15:59:47 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2017-01-06 10:41:14 +00:00
|
|
|
echo "====> : Pulling or refreshing OpenMapTiles docker images "
|
2016-12-09 15:59:47 +00:00
|
|
|
make refresh-docker-images
|
|
|
|
|
|
|
|
|
|
|
|
##### backup log from here ...
|
2016-11-15 22:02:28 +00:00
|
|
|
exec &> >(tee -a "$log_file")
|
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-12-09 15:59:47 +00:00
|
|
|
echo "====================================================================================="
|
|
|
|
echo " Start processing "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
|
|
|
echo "====> : OpenMapTiles quickstart! [ https://github.com/openmaptiles/openmaptiles ] "
|
2017-01-06 10:49:11 +00:00
|
|
|
echo " : This will be logged to the $log_file file (for debugging) and to the screen"
|
Rework download area support (#908)
Closes #904
* Make all data-related targets like `download*`, `import-osm`, `import-borders`, and `generate-tiles` into `area`-aware -- making it possible for multiple data files to coexist inside the `./data` dir.
* Add `make download area=... [url=...]` command to automatically download any kind of area by checking Geofabrik, BBBike, and OSM.fr, optionally from a custom URL. Supports `area=planet` too.
* Do not re-download area with `make download-*` if it already exists.
* Automatically rename `<area>-latest.osm.pbf` into `<area>.osm.pbf`
* If `area=...` parameter is not given to `make`, see if there is exactly one `*.osm.pbf` file, and if so, use `*` as the `area`.
* Configure many variables in the .env file, overriding the defaults in tools
* If `<area>.osm.pbf` exists, but `<area>.dc-config.pbf` is missing, generate it using `download-osm make-dc` command.
Also:
* closes #614
* closes #647
* partially addresses #261
2020-06-03 19:37:45 +00:00
|
|
|
echo " : Area : $area "
|
2021-01-10 15:55:52 +00:00
|
|
|
echo " : Download server : ${osm_server:-unset (automatic)} "
|
|
|
|
echo " : Preloaded image : $USE_PRELOADED_IMAGE "
|
2020-06-01 16:54:30 +00:00
|
|
|
echo " : Git version : $(git rev-parse HEAD) "
|
2016-12-09 15:59:47 +00:00
|
|
|
echo " : Started : $STARTDATE "
|
|
|
|
echo " : Your bash version: $BASH_VERSION"
|
|
|
|
echo " : Your OS : $OSTYPE"
|
|
|
|
docker --version
|
2023-03-15 21:16:00 +00:00
|
|
|
docker_compose_command --version
|
2016-11-16 00:45:44 +00:00
|
|
|
|
2016-11-30 02:34:19 +00:00
|
|
|
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
|
|
|
echo " "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
|
|
|
echo " : This is working on x86_64 ; Your kernel is:"
|
|
|
|
uname -r
|
|
|
|
uname -m
|
|
|
|
|
|
|
|
KERNEL_CPU_VER=$(uname -m)
|
|
|
|
if [ "$KERNEL_CPU_VER" != "x86_64" ]; then
|
2016-12-09 15:59:47 +00:00
|
|
|
echo "ERR: Sorry this is working only on x86_64!"
|
|
|
|
exit 1
|
2016-11-30 02:34:19 +00:00
|
|
|
fi
|
2021-09-01 13:13:35 +00:00
|
|
|
|
2016-11-30 02:34:19 +00:00
|
|
|
echo " : --- Memory, CPU info ---- "
|
2021-09-01 13:13:35 +00:00
|
|
|
if [ -n "$(command -v bc)" ]; then
|
|
|
|
mem=$( grep MemTotal /proc/meminfo | awk '{print $2}' | xargs -I {} echo "scale=4; {}/1024^2" | bc )
|
|
|
|
echo "System memory (GB): ${mem}"
|
|
|
|
else
|
|
|
|
mem=$( grep MemTotal /proc/meminfo | awk '{print $2}')
|
|
|
|
echo "System memory (KB): ${mem}"
|
|
|
|
fi
|
2016-11-30 02:34:19 +00:00
|
|
|
grep SwapTotal /proc/meminfo
|
2021-01-10 15:55:52 +00:00
|
|
|
echo "CPU number: $(grep -c processor /proc/cpuinfo) x $(grep "bogomips" /proc/cpuinfo | head -1)"
|
2020-04-22 06:48:57 +00:00
|
|
|
grep Free /proc/meminfo
|
2016-11-30 02:34:19 +00:00
|
|
|
else
|
|
|
|
echo " "
|
2017-01-06 10:49:11 +00:00
|
|
|
echo "Warning : Platforms other than Linux are less tested"
|
2016-11-30 02:34:19 +00:00
|
|
|
echo " "
|
2016-11-27 19:01:01 +00:00
|
|
|
fi
|
|
|
|
|
2024-02-21 10:52:29 +00:00
|
|
|
MBTILES_FILE=${MBTILES_FILE:-$(source .env ; echo "$MBTILES_FILE")}
|
2023-05-10 07:33:44 +00:00
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2017-01-06 10:49:11 +00:00
|
|
|
echo "====> : Stopping running services & removing old containers"
|
2020-05-09 17:30:57 +00:00
|
|
|
make destroy-db
|
2016-11-15 22:02:28 +00:00
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2020-04-22 06:48:57 +00:00
|
|
|
echo "====> : Existing OpenMapTiles docker images. Will use version $(source .env && echo "$TOOLS_VERSION")"
|
2016-11-30 04:39:06 +00:00
|
|
|
docker images | grep openmaptiles
|
2016-11-11 16:28:37 +00:00
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2020-03-06 18:15:54 +00:00
|
|
|
echo "====> : Create directories if they don't exist"
|
|
|
|
make init-dirs
|
2016-11-11 16:28:37 +00:00
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2024-02-21 10:52:29 +00:00
|
|
|
echo "====> : Removing old MBTILES if exists ( ./data/$MBTILES_FILE ) "
|
|
|
|
rm -f "./data/$MBTILES_FILE"
|
2016-11-27 10:31:43 +00:00
|
|
|
|
Rework download area support (#908)
Closes #904
* Make all data-related targets like `download*`, `import-osm`, `import-borders`, and `generate-tiles` into `area`-aware -- making it possible for multiple data files to coexist inside the `./data` dir.
* Add `make download area=... [url=...]` command to automatically download any kind of area by checking Geofabrik, BBBike, and OSM.fr, optionally from a custom URL. Supports `area=planet` too.
* Do not re-download area with `make download-*` if it already exists.
* Automatically rename `<area>-latest.osm.pbf` into `<area>.osm.pbf`
* If `area=...` parameter is not given to `make`, see if there is exactly one `*.osm.pbf` file, and if so, use `*` as the `area`.
* Configure many variables in the .env file, overriding the defaults in tools
* If `<area>.osm.pbf` exists, but `<area>.dc-config.pbf` is missing, generate it using `download-osm make-dc` command.
Also:
* closes #614
* closes #647
* partially addresses #261
2020-06-03 19:37:45 +00:00
|
|
|
echo " "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
|
|
|
echo "====> : Downloading ${area} from ${osm_server:-any source}..."
|
|
|
|
make "download${osm_server:+-${osm_server}}"
|
2016-11-27 10:31:43 +00:00
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "====> : Remove old generated source files ( ./build/* ) ( if they exist ) "
|
2019-03-22 08:34:00 +00:00
|
|
|
make clean
|
2016-11-11 16:28:37 +00:00
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2020-05-18 18:26:51 +00:00
|
|
|
echo "====> : Code generating from the layer definitions ( ./build/mapping.yaml; ./build/sql/* )"
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : The tool source code: https://github.com/openmaptiles/openmaptiles-tools "
|
|
|
|
echo " : But we generate the tm2source, Imposm mappings and SQL functions from the layer definitions! "
|
2020-04-22 06:48:57 +00:00
|
|
|
make all
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
Upgrade to tools v5 - rm import-osm, new downloader... (#785)
Update to tools v5. See https://github.com/openmaptiles/openmaptiles-tools/releases/tag/v5.0.0 for the list of all changes. Other OMT-repo specific changes:
* removes `import-osm` docker usage, replacing it with `openmaptiles-tools`
* quickstart builds faster because it uses postgres with preloaded water, natural earth, and lake centerlines tables.
### Makefile targets
* `tools-dev` will open a shell in a docker to experiment and debug (instead of `import-sql-dev` and `import-osm-dev`)
* separated `start-maputnik` from `start-postserve`
* renamed `clean-docker` into `db-destroy` to make it more explicit
* cleaner `db-start`, `db-stop`, `db-destroy` targets
* `db-start-preloaded` is the same as `db-start`, except that it uses `postgis-preloaded` -- an image with preloaded water, natural-earth, and lake centerline data
* `db-start` will not recreate the container if it already exists -- this way if it was started as preloaded, it will not be rebuilt.
* better output messages
### Quickstart
* uses `postgis-preloaded` image by default to make quickstart quicker. To start with a clean db, pass 2 parameters to quickstart, e.g. `./quickstart.sh albania empty`
2020-05-05 15:53:09 +00:00
|
|
|
if [[ "$USE_PRELOADED_IMAGE" == true ]]; then
|
|
|
|
echo "====> : Start PostgreSQL service using postgis image preloaded with this data:"
|
|
|
|
echo " : * Water data from http://osmdata.openstreetmap.de"
|
|
|
|
echo " : Data license: https://osmdata.openstreetmap.de/info/license.html"
|
|
|
|
echo " : * Natural Earth from http://www.naturalearthdata.com"
|
|
|
|
echo " : Terms-of-use: http://www.naturalearthdata.com/about/terms-of-use"
|
2023-01-30 13:04:47 +00:00
|
|
|
echo " : * OpenStreetMap Lakelines data https://github.com/openmaptiles/osm-lakelines"
|
Upgrade to tools v5 - rm import-osm, new downloader... (#785)
Update to tools v5. See https://github.com/openmaptiles/openmaptiles-tools/releases/tag/v5.0.0 for the list of all changes. Other OMT-repo specific changes:
* removes `import-osm` docker usage, replacing it with `openmaptiles-tools`
* quickstart builds faster because it uses postgres with preloaded water, natural earth, and lake centerlines tables.
### Makefile targets
* `tools-dev` will open a shell in a docker to experiment and debug (instead of `import-sql-dev` and `import-osm-dev`)
* separated `start-maputnik` from `start-postserve`
* renamed `clean-docker` into `db-destroy` to make it more explicit
* cleaner `db-start`, `db-stop`, `db-destroy` targets
* `db-start-preloaded` is the same as `db-start`, except that it uses `postgis-preloaded` -- an image with preloaded water, natural-earth, and lake centerline data
* `db-start` will not recreate the container if it already exists -- this way if it was started as preloaded, it will not be rebuilt.
* better output messages
### Quickstart
* uses `postgis-preloaded` image by default to make quickstart quicker. To start with a clean db, pass 2 parameters to quickstart, e.g. `./quickstart.sh albania empty`
2020-05-05 15:53:09 +00:00
|
|
|
echo " :"
|
|
|
|
echo " : Source code: https://github.com/openmaptiles/openmaptiles-tools/tree/master/docker/import-data"
|
|
|
|
echo " : includes all data from the import-data image"
|
|
|
|
echo " :"
|
2020-05-15 05:14:14 +00:00
|
|
|
echo " : Use the --empty flag to start with an empty database:"
|
|
|
|
echo " : ./quickstart.sh --empty albania "
|
|
|
|
echo " : If desired, you can manually import data by using these commands:"
|
2020-05-09 17:30:57 +00:00
|
|
|
echo " : make destroy-db"
|
|
|
|
echo " : make start-db"
|
Upgrade to tools v5 - rm import-osm, new downloader... (#785)
Update to tools v5. See https://github.com/openmaptiles/openmaptiles-tools/releases/tag/v5.0.0 for the list of all changes. Other OMT-repo specific changes:
* removes `import-osm` docker usage, replacing it with `openmaptiles-tools`
* quickstart builds faster because it uses postgres with preloaded water, natural earth, and lake centerlines tables.
### Makefile targets
* `tools-dev` will open a shell in a docker to experiment and debug (instead of `import-sql-dev` and `import-osm-dev`)
* separated `start-maputnik` from `start-postserve`
* renamed `clean-docker` into `db-destroy` to make it more explicit
* cleaner `db-start`, `db-stop`, `db-destroy` targets
* `db-start-preloaded` is the same as `db-start`, except that it uses `postgis-preloaded` -- an image with preloaded water, natural-earth, and lake centerline data
* `db-start` will not recreate the container if it already exists -- this way if it was started as preloaded, it will not be rebuilt.
* better output messages
### Quickstart
* uses `postgis-preloaded` image by default to make quickstart quicker. To start with a clean db, pass 2 parameters to quickstart, e.g. `./quickstart.sh albania empty`
2020-05-05 15:53:09 +00:00
|
|
|
echo " : make import-data"
|
|
|
|
echo " :"
|
|
|
|
echo " : Source code: https://github.com/openmaptiles/openmaptiles-tools/tree/master/docker/postgis-preloaded"
|
2021-01-10 15:55:52 +00:00
|
|
|
echo " : Thank you https://www.postgresql.org ! Thank you http://postgis.org !"
|
2020-05-09 17:30:57 +00:00
|
|
|
make start-db-preloaded
|
Upgrade to tools v5 - rm import-osm, new downloader... (#785)
Update to tools v5. See https://github.com/openmaptiles/openmaptiles-tools/releases/tag/v5.0.0 for the list of all changes. Other OMT-repo specific changes:
* removes `import-osm` docker usage, replacing it with `openmaptiles-tools`
* quickstart builds faster because it uses postgres with preloaded water, natural earth, and lake centerlines tables.
### Makefile targets
* `tools-dev` will open a shell in a docker to experiment and debug (instead of `import-sql-dev` and `import-osm-dev`)
* separated `start-maputnik` from `start-postserve`
* renamed `clean-docker` into `db-destroy` to make it more explicit
* cleaner `db-start`, `db-stop`, `db-destroy` targets
* `db-start-preloaded` is the same as `db-start`, except that it uses `postgis-preloaded` -- an image with preloaded water, natural-earth, and lake centerline data
* `db-start` will not recreate the container if it already exists -- this way if it was started as preloaded, it will not be rebuilt.
* better output messages
### Quickstart
* uses `postgis-preloaded` image by default to make quickstart quicker. To start with a clean db, pass 2 parameters to quickstart, e.g. `./quickstart.sh albania empty`
2020-05-05 15:53:09 +00:00
|
|
|
else
|
|
|
|
echo "====> : Start PostgreSQL service using empty database and importing all the data:"
|
|
|
|
echo " : * Water data from http://osmdata.openstreetmap.de"
|
|
|
|
echo " : Data license: https://osmdata.openstreetmap.de/info/license.html"
|
|
|
|
echo " : * Natural Earth from http://www.naturalearthdata.com"
|
|
|
|
echo " : Terms-of-use: http://www.naturalearthdata.com/about/terms-of-use"
|
2023-01-30 13:04:47 +00:00
|
|
|
echo " : * OpenStreetMap Lakelines data https://github.com/openmaptiles/osm-lakelines"
|
Upgrade to tools v5 - rm import-osm, new downloader... (#785)
Update to tools v5. See https://github.com/openmaptiles/openmaptiles-tools/releases/tag/v5.0.0 for the list of all changes. Other OMT-repo specific changes:
* removes `import-osm` docker usage, replacing it with `openmaptiles-tools`
* quickstart builds faster because it uses postgres with preloaded water, natural earth, and lake centerlines tables.
### Makefile targets
* `tools-dev` will open a shell in a docker to experiment and debug (instead of `import-sql-dev` and `import-osm-dev`)
* separated `start-maputnik` from `start-postserve`
* renamed `clean-docker` into `db-destroy` to make it more explicit
* cleaner `db-start`, `db-stop`, `db-destroy` targets
* `db-start-preloaded` is the same as `db-start`, except that it uses `postgis-preloaded` -- an image with preloaded water, natural-earth, and lake centerline data
* `db-start` will not recreate the container if it already exists -- this way if it was started as preloaded, it will not be rebuilt.
* better output messages
### Quickstart
* uses `postgis-preloaded` image by default to make quickstart quicker. To start with a clean db, pass 2 parameters to quickstart, e.g. `./quickstart.sh albania empty`
2020-05-05 15:53:09 +00:00
|
|
|
echo " :"
|
|
|
|
echo " : Source code: https://github.com/openmaptiles/openmaptiles-tools/tree/master/docker/import-data"
|
|
|
|
echo " : includes all data from the import-data image"
|
|
|
|
echo " :"
|
2021-01-10 15:55:52 +00:00
|
|
|
echo " : Thank you https://www.postgresql.org ! Thank you http://postgis.org !"
|
2020-05-09 17:30:57 +00:00
|
|
|
make start-db
|
Upgrade to tools v5 - rm import-osm, new downloader... (#785)
Update to tools v5. See https://github.com/openmaptiles/openmaptiles-tools/releases/tag/v5.0.0 for the list of all changes. Other OMT-repo specific changes:
* removes `import-osm` docker usage, replacing it with `openmaptiles-tools`
* quickstart builds faster because it uses postgres with preloaded water, natural earth, and lake centerlines tables.
### Makefile targets
* `tools-dev` will open a shell in a docker to experiment and debug (instead of `import-sql-dev` and `import-osm-dev`)
* separated `start-maputnik` from `start-postserve`
* renamed `clean-docker` into `db-destroy` to make it more explicit
* cleaner `db-start`, `db-stop`, `db-destroy` targets
* `db-start-preloaded` is the same as `db-start`, except that it uses `postgis-preloaded` -- an image with preloaded water, natural-earth, and lake centerline data
* `db-start` will not recreate the container if it already exists -- this way if it was started as preloaded, it will not be rebuilt.
* better output messages
### Quickstart
* uses `postgis-preloaded` image by default to make quickstart quicker. To start with a clean db, pass 2 parameters to quickstart, e.g. `./quickstart.sh albania empty`
2020-05-05 15:53:09 +00:00
|
|
|
make import-data
|
|
|
|
fi
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
Rework download area support (#908)
Closes #904
* Make all data-related targets like `download*`, `import-osm`, `import-borders`, and `generate-tiles` into `area`-aware -- making it possible for multiple data files to coexist inside the `./data` dir.
* Add `make download area=... [url=...]` command to automatically download any kind of area by checking Geofabrik, BBBike, and OSM.fr, optionally from a custom URL. Supports `area=planet` too.
* Do not re-download area with `make download-*` if it already exists.
* Automatically rename `<area>-latest.osm.pbf` into `<area>.osm.pbf`
* If `area=...` parameter is not given to `make`, see if there is exactly one `*.osm.pbf` file, and if so, use `*` as the `area`.
* Configure many variables in the .env file, overriding the defaults in tools
* If `<area>.osm.pbf` exists, but `<area>.dc-config.pbf` is missing, generate it using `download-osm make-dc` command.
Also:
* closes #614
* closes #647
* partially addresses #261
2020-06-03 19:37:45 +00:00
|
|
|
echo "====> : Start importing OpenStreetMap data: ${area} -> imposm3[./build/mapping.yaml] -> PostgreSQL"
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " : Imposm3 documentation: https://imposm.org/docs/imposm3/latest/index.html "
|
|
|
|
echo " : Thank you Omniscale! "
|
2023-01-30 13:04:47 +00:00
|
|
|
echo " : Source code: https://github.com/openmaptiles/openmaptiles-tools/blob/master/bin/import-osm "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " : The OpenstreetMap data license: https://www.openstreetmap.org/copyright (ODBL) "
|
2016-11-28 22:15:47 +00:00
|
|
|
echo " : Thank you OpenStreetMap Contributors ! "
|
Rework download area support (#908)
Closes #904
* Make all data-related targets like `download*`, `import-osm`, `import-borders`, and `generate-tiles` into `area`-aware -- making it possible for multiple data files to coexist inside the `./data` dir.
* Add `make download area=... [url=...]` command to automatically download any kind of area by checking Geofabrik, BBBike, and OSM.fr, optionally from a custom URL. Supports `area=planet` too.
* Do not re-download area with `make download-*` if it already exists.
* Automatically rename `<area>-latest.osm.pbf` into `<area>.osm.pbf`
* If `area=...` parameter is not given to `make`, see if there is exactly one `*.osm.pbf` file, and if so, use `*` as the `area`.
* Configure many variables in the .env file, overriding the defaults in tools
* If `<area>.osm.pbf` exists, but `<area>.dc-config.pbf` is missing, generate it using `download-osm make-dc` command.
Also:
* closes #614
* closes #647
* partially addresses #261
2020-06-03 19:37:45 +00:00
|
|
|
make import-osm
|
2020-03-06 18:15:54 +00:00
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2020-04-09 14:49:35 +00:00
|
|
|
echo "====> : Start importing Wikidata: Wikidata Query Service -> PostgreSQL"
|
|
|
|
echo " : The Wikidata license: CC0 - https://www.wikidata.org/wiki/Wikidata:Main_Page "
|
|
|
|
echo " : Thank you Wikidata Contributors ! "
|
|
|
|
make import-wikidata
|
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
|
|
|
echo "====> : Start SQL postprocessing: ./build/sql/* -> PostgreSQL "
|
2020-01-24 19:40:03 +00:00
|
|
|
echo " : Source code: https://github.com/openmaptiles/openmaptiles-tools/blob/master/bin/import-sql"
|
2019-12-14 08:00:25 +00:00
|
|
|
# If the output contains a WARNING, stop further processing
|
|
|
|
# Adapted from https://unix.stackexchange.com/questions/307562
|
2020-05-04 17:28:23 +00:00
|
|
|
make import-sql
|
2016-11-11 16:28:37 +00:00
|
|
|
|
2017-01-20 22:30:02 +00:00
|
|
|
echo " "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
|
|
|
echo "====> : Analyze PostgreSQL tables"
|
2020-05-09 17:30:57 +00:00
|
|
|
make analyze-db
|
2017-01-20 22:30:02 +00:00
|
|
|
|
2017-05-10 22:35:01 +00:00
|
|
|
echo " "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2019-12-12 17:40:31 +00:00
|
|
|
echo "====> : Testing PostgreSQL tables to match layer definitions metadata"
|
2020-04-09 14:49:35 +00:00
|
|
|
make test-perf-null
|
2017-05-10 22:35:01 +00:00
|
|
|
|
2020-06-04 19:45:04 +00:00
|
|
|
echo " "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2020-10-26 16:39:49 +00:00
|
|
|
|
Allow `BBOX` to be set in `.env` file (#1013)
* Allow setting `BBOX` to be set in `.env` file
Currently, the `BBOX` setting in `.env` is ignored for all areas except `planet`.
On the other hand, the `planet` area is an overkill for any `BBOX` setting other than the default - `-180.0,-85.0511,180.0,85.0511`.
With this PR, `quickstart.sh` would not override a modified `BBOX` value in `.env`.
Also, this provides a way to avoid the pessimistic `BBOX` computation for `osmfr` extracts, as described in https://github.com/openmaptiles/openmaptiles-tools/pull/297#issuecomment-700792702
#### Currently
- If the user does not do anything, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the full extent of the data source. This applies to `planet` and other data sources.
- If a user sets the `BBOX` value in `.env` and a `planet` data source is used, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the extent set in the `.env` file.
- If a user sets the `BBOX` value in `.env` and a non-`planet` data source is used, it is ignored - `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the full extent of the data source.
#### Problem statement
While users of a `planet` data source have a simple way to override the default extend of the tile generation, users of other data sources have no simple way of doing that. In fact, for such users the `BBOX` setting in the `.env` file is ignored and therefore misleading.
#### Proposal
- If the user does not do anything, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the full extent of the data source. This applies to `planet` and other data sources.
- If a user sets the `BBOX` value in `.env`, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the extent set in the `.env` file. This applies to `planet` and other data sources.
2020-10-15 08:38:11 +00:00
|
|
|
if [[ "$(source .env ; echo "$BBOX")" = "-180.0,-85.0511,180.0,85.0511" ]]; then
|
|
|
|
if [[ "$area" != "planet" ]]; then
|
|
|
|
echo "====> : Compute bounding box for tile generation"
|
2020-10-26 16:39:49 +00:00
|
|
|
make generate-bbox-file ${MIN_ZOOM:+MIN_ZOOM="${MIN_ZOOM}"} ${MAX_ZOOM:+MAX_ZOOM="${MAX_ZOOM}"}
|
Allow `BBOX` to be set in `.env` file (#1013)
* Allow setting `BBOX` to be set in `.env` file
Currently, the `BBOX` setting in `.env` is ignored for all areas except `planet`.
On the other hand, the `planet` area is an overkill for any `BBOX` setting other than the default - `-180.0,-85.0511,180.0,85.0511`.
With this PR, `quickstart.sh` would not override a modified `BBOX` value in `.env`.
Also, this provides a way to avoid the pessimistic `BBOX` computation for `osmfr` extracts, as described in https://github.com/openmaptiles/openmaptiles-tools/pull/297#issuecomment-700792702
#### Currently
- If the user does not do anything, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the full extent of the data source. This applies to `planet` and other data sources.
- If a user sets the `BBOX` value in `.env` and a `planet` data source is used, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the extent set in the `.env` file.
- If a user sets the `BBOX` value in `.env` and a non-`planet` data source is used, it is ignored - `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the full extent of the data source.
#### Problem statement
While users of a `planet` data source have a simple way to override the default extend of the tile generation, users of other data sources have no simple way of doing that. In fact, for such users the `BBOX` setting in the `.env` file is ignored and therefore misleading.
#### Proposal
- If the user does not do anything, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the full extent of the data source. This applies to `planet` and other data sources.
- If a user sets the `BBOX` value in `.env`, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the extent set in the `.env` file. This applies to `planet` and other data sources.
2020-10-15 08:38:11 +00:00
|
|
|
else
|
|
|
|
echo "====> : Skipping bbox calculation when generating the entire planet"
|
|
|
|
fi
|
2020-10-26 16:39:49 +00:00
|
|
|
|
2020-06-04 19:45:04 +00:00
|
|
|
else
|
Allow `BBOX` to be set in `.env` file (#1013)
* Allow setting `BBOX` to be set in `.env` file
Currently, the `BBOX` setting in `.env` is ignored for all areas except `planet`.
On the other hand, the `planet` area is an overkill for any `BBOX` setting other than the default - `-180.0,-85.0511,180.0,85.0511`.
With this PR, `quickstart.sh` would not override a modified `BBOX` value in `.env`.
Also, this provides a way to avoid the pessimistic `BBOX` computation for `osmfr` extracts, as described in https://github.com/openmaptiles/openmaptiles-tools/pull/297#issuecomment-700792702
#### Currently
- If the user does not do anything, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the full extent of the data source. This applies to `planet` and other data sources.
- If a user sets the `BBOX` value in `.env` and a `planet` data source is used, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the extent set in the `.env` file.
- If a user sets the `BBOX` value in `.env` and a non-`planet` data source is used, it is ignored - `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the full extent of the data source.
#### Problem statement
While users of a `planet` data source have a simple way to override the default extend of the tile generation, users of other data sources have no simple way of doing that. In fact, for such users the `BBOX` setting in the `.env` file is ignored and therefore misleading.
#### Proposal
- If the user does not do anything, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the full extent of the data source. This applies to `planet` and other data sources.
- If a user sets the `BBOX` value in `.env`, `quickstart.sh` and `make generate-tiles` create an `mbtiles` file for the extent set in the `.env` file. This applies to `planet` and other data sources.
2020-10-15 08:38:11 +00:00
|
|
|
echo "====> : Bounding box is set in .env file"
|
2020-06-04 19:45:04 +00:00
|
|
|
fi
|
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2021-08-26 01:35:06 +00:00
|
|
|
echo "====> : Start generating MBTiles (containing gzipped MVT PBF) using PostGIS. "
|
2024-02-21 10:52:29 +00:00
|
|
|
echo " : Output MBTiles: $MBTILES_FILE "
|
2021-08-26 01:35:06 +00:00
|
|
|
echo " : Source code: https://github.com/openmaptiles/openmaptiles-tools/blob/master/bin/generate-tiles "
|
2024-02-21 10:52:29 +00:00
|
|
|
make generate-tiles-pg
|
2017-01-08 12:22:19 +00:00
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2016-11-15 22:02:28 +00:00
|
|
|
echo "====> : Stop PostgreSQL service ( but we keep PostgreSQL data volume for debugging )"
|
2020-05-09 17:30:57 +00:00
|
|
|
make stop-db
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2016-11-16 00:54:27 +00:00
|
|
|
echo "====> : Inputs - Outputs md5sum for debugging "
|
2016-11-28 22:15:47 +00:00
|
|
|
rm -f ./data/quickstart_checklist.chk
|
2020-04-22 06:48:57 +00:00
|
|
|
{
|
2023-05-15 10:36:15 +00:00
|
|
|
find build data -type f -exec md5sum {} + | sort -k2
|
2020-04-22 06:48:57 +00:00
|
|
|
} >> ./data/quickstart_checklist.chk
|
2016-11-28 22:15:47 +00:00
|
|
|
cat ./data/quickstart_checklist.chk
|
|
|
|
|
|
|
|
ENDTIME=$(date +%s)
|
2016-11-16 01:16:18 +00:00
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
|
|
|
echo "-- S u m m a r y --"
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2016-11-15 22:02:28 +00:00
|
|
|
echo "====> : (disk space) We have created a lot of docker images: "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : Hint: you can remove with: docker rmi IMAGE "
|
2016-11-15 22:02:28 +00:00
|
|
|
docker images | grep openmaptiles
|
|
|
|
|
|
|
|
echo " "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2024-02-21 10:52:29 +00:00
|
|
|
echo "====> : (disk space) We have created the new vectortiles ( ./data/$MBTILES_FILE ) "
|
2017-01-06 10:56:09 +00:00
|
|
|
echo " : Please respect the licenses (OdBL for OSM data) of the sources when distributing the MBTiles file."
|
Rework download area support (#908)
Closes #904
* Make all data-related targets like `download*`, `import-osm`, `import-borders`, and `generate-tiles` into `area`-aware -- making it possible for multiple data files to coexist inside the `./data` dir.
* Add `make download area=... [url=...]` command to automatically download any kind of area by checking Geofabrik, BBBike, and OSM.fr, optionally from a custom URL. Supports `area=planet` too.
* Do not re-download area with `make download-*` if it already exists.
* Automatically rename `<area>-latest.osm.pbf` into `<area>.osm.pbf`
* If `area=...` parameter is not given to `make`, see if there is exactly one `*.osm.pbf` file, and if so, use `*` as the `area`.
* Configure many variables in the .env file, overriding the defaults in tools
* If `<area>.osm.pbf` exists, but `<area>.dc-config.pbf` is missing, generate it using `download-osm make-dc` command.
Also:
* closes #614
* closes #647
* partially addresses #261
2020-06-03 19:37:45 +00:00
|
|
|
echo " : Data directory content:"
|
|
|
|
ls -la ./data
|
2016-11-15 22:02:28 +00:00
|
|
|
|
2016-11-27 10:31:43 +00:00
|
|
|
echo " "
|
|
|
|
echo "-------------------------------------------------------------------------------------"
|
Rework download area support (#908)
Closes #904
* Make all data-related targets like `download*`, `import-osm`, `import-borders`, and `generate-tiles` into `area`-aware -- making it possible for multiple data files to coexist inside the `./data` dir.
* Add `make download area=... [url=...]` command to automatically download any kind of area by checking Geofabrik, BBBike, and OSM.fr, optionally from a custom URL. Supports `area=planet` too.
* Do not re-download area with `make download-*` if it already exists.
* Automatically rename `<area>-latest.osm.pbf` into `<area>.osm.pbf`
* If `area=...` parameter is not given to `make`, see if there is exactly one `*.osm.pbf` file, and if so, use `*` as the `area`.
* Configure many variables in the .env file, overriding the defaults in tools
* If `<area>.osm.pbf` exists, but `<area>.dc-config.pbf` is missing, generate it using `download-osm make-dc` command.
Also:
* closes #614
* closes #647
* partially addresses #261
2020-06-03 19:37:45 +00:00
|
|
|
echo "The ./quickstart.sh $area is finished! "
|
2021-01-10 15:55:52 +00:00
|
|
|
echo "It took $((ENDTIME - STARTTIME)) seconds to complete"
|
|
|
|
echo "We saved the log file to $log_file (for debugging) You can compare with the travis log !"
|
2016-11-28 22:15:47 +00:00
|
|
|
echo " "
|
2021-01-10 15:55:52 +00:00
|
|
|
echo "Start experimenting and check the QUICKSTART.MD file!"
|
2019-12-12 17:40:31 +00:00
|
|
|
echo " "
|
2020-05-09 17:30:57 +00:00
|
|
|
echo "* Use make start-maputnik to explore tile generation on request"
|
|
|
|
echo "* Use make start-tileserver to view pre-generated tiles"
|
2019-12-12 17:40:31 +00:00
|
|
|
echo " "
|
2017-01-06 10:56:09 +00:00
|
|
|
echo "Available help commands (make help) "
|
2016-11-30 04:39:06 +00:00
|
|
|
make help
|
|
|
|
|
2016-11-28 15:44:30 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
|
|
|
echo " Acknowledgments "
|
2017-05-03 06:09:35 +00:00
|
|
|
echo " Generated vector tiles are produced work of OpenStreetMap data. "
|
|
|
|
echo " Such tiles are reusable under CC-BY license granted by OpenMapTiles team: "
|
|
|
|
echo " https://github.com/openmaptiles/openmaptiles/#license "
|
2024-02-21 12:40:46 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
|
|
|
echo " "
|
|
|
|
echo -e "\033[1m Maps made with these vector tiles must display a visible credit:\033[0m "
|
2017-05-03 06:09:35 +00:00
|
|
|
echo " © OpenMapTiles © OpenStreetMap contributors "
|
|
|
|
echo " "
|
2024-02-21 12:40:46 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|
2017-01-06 10:56:09 +00:00
|
|
|
echo " Thanks to all free, open source software developers and Open Data Contributors! "
|
2016-11-16 01:29:44 +00:00
|
|
|
echo "-------------------------------------------------------------------------------------"
|