summaryrefslogtreecommitdiff
path: root/geography/epsg/files/epsg-load
blob: f8e937c462b4542972330cdf2f4de6addcf38ed7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/bin/sh
# $NetBSD: epsg-load,v 1.3 2007/07/28 11:06:36 gdt Exp $

# epsg - import EPSG data into a relational database

# Copyright (c) 2006,2007 Brook Milligan <brook@nmsu.edu>
# 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.

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