#!/bin/sh # $NetBSD: epsg-load,v 1.4 2007/08/14 17:19:20 joerg Exp $ # epsg - import EPSG data into a relational database # Copyright (c) 2006,2007 Brook Milligan # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # 3. The name of the author may not be used to endorse or promote # products derived from this software without specific prior # written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. set -e # exit on error HOST= PORT= DB=epsg USERNAME=$USER HELP=0 USE_PGSQL=0 USE_MYSQL=0 VERS=@VERS@ SRCDIR=@EPSGDIR@ PSQL=@PREFIX@/bin/psql MYSQL=@PREFIX@/bin/mysql if [ $# = 0 ]; then HELP=1 fi while [ $# -gt 0 ]; do case $1 in --help) HELP=1;; --dbname) DB=$2; shift;; --host) HOST=$2; shift;; --mysql) USE_MYSQL=1;; --port) PORT=$2; shift;; --pgsql) USE_PGSQL=1;; --srcdir) SRCDIR=$2; shift;; --username) USERNAME=$2; shift;; *) HELP=1; echo "epsg: unrecognized option: $1";; esac shift; done if [ $HELP -eq 1 ]; then echo "epsg -- load the EPSG dataset into a database" echo "usage: epsg [options]" echo "options:" echo " --help [ print a help message ]" echo " --pgsql [ connect to a PostgreSQL database ]" echo " --mysql [ connect to a mySQL database ]" echo " --host hostname [ connect to a specific host ]" echo " --port port [ connect to a specific port ]" echo " --dbname database [ connect to a specific database ]" echo " --username user [ connect as user ]" exit 1 fi echo "epsg - importing EPSG data ..." if [ "$HOST" != "" ]; then echo " host: $HOST" PSQL_FLAGS="$PSQL_FLAGS --host $HOST" MYSQL_FLAGS="$MYSQL_FLAGS --host=$HOST" fi if [ "$PORT" != "" ]; then echo " port: $PORT" PSQL_FLAGS="$PSQL_FLAGS --port $PORT" MYSQL_FLAGS="$MYSQL_FLAGS --port=$PORT" fi if [ "$DB" != "" ]; then echo " database: $DB" PSQL_FLAGS="$PSQL_FLAGS --dbname $DB" MYSQL_FLAGS="$MYSQL_FLAGS --database=$DB" fi if [ "$USERNAME" != "" ]; then echo " username: $USERNAME" PSQL_FLAGS="$PSQL_FLAGS --username $USERNAME" MYSQL_FLAGS="$MYSQL_FLAGS --user=$USERNAME" fi if [ $USE_PGSQL -eq 1 ]; then echo "importing into a PostgreSQL database ..." $PSQL -f $SRCDIR/EPSG_v$VERS.mdb_Tables_PostgreSQL.sql $PSQL_FLAGS $PSQL -f $SRCDIR/EPSG_v$VERS.mdb_Data_PostgreSQL.sql $PSQL_FLAGS $PSQL -f $SRCDIR/EPSG_v$VERS.mdb_FKeys_PostgreSQL.sql $PSQL_FLAGS fi if [ $USE_MYSQL -eq 1 ]; then echo "importing into a mySQL database ..." $MYSQL $MYSQL_FLAGS < $SRCDIR/EPSG_v$VERS.mdb_Tables_MySQL.sql $MYSQL $MYSQL_FLAGS < $SRCDIR/EPSG_v$VERS.mdb_Data_MySQL.sql $MYSQL $MYSQL_FLAGS < $SRCDIR/EPSG_v$VERS.mdb_FKeys_MySQL.sql fi