/usr/share/pyshared/imposm/psqldb.py is in python-imposm 2.3.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | # Copyright 2011 Omniscale (http://omniscale.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import optparse
import string
from os.path import join, dirname, exists
db_create_template = """
# run this as postgres user, eg:
# imposm-pgsql > create_db.sh; sudo su postgres; sh ./create_db.sh
set -xe
createuser --no-superuser --no-createrole --createdb ${user}
createdb -E UTF8 -O ${user} ${dbname}
createlang plpgsql ${dbname}
psql -d ${dbname} -f ${postgis_sql}
psql -d ${dbname} -f ${spatial_ref_sys_sql}
psql -d ${dbname} -f ${epsg900913_sql}
echo "ALTER TABLE geometry_columns OWNER TO ${user}; ALTER TABLE spatial_ref_sys OWNER TO ${user};" | psql -d ${dbname}
echo "ALTER USER ${user} WITH PASSWORD '${password}';" |psql -d ${dbname}
echo "host\t${dbname}\t${user}\t127.0.0.1/32\tmd5" >> ${pg_hba}
set +x
echo "Done. Don't forget to restart postgresql!"
""".strip()
def find_sql_files(version, mapping):
pg_hba = '/path/to/pg_hba.conf \t\t# <- CHANGE THIS PATH'
postgis_sql = '/path/to/postgis.sql \t\t# <- CHANGE THIS PATH'
spatial_ref_sys_sql = '/path/to/spatial_ref_sys.sql \t# <- CHANGE THIS PATH'
if version in ('8.3', 'auto'):
p = '/usr/share/postgresql-8.3-postgis/lwpostgis.sql'
if exists(p):
postgis_sql = p
p = '/usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql'
if exists(p):
spatial_ref_sys_sql = p
p = '/etc/postgresql/8.3/main/pg_hba.conf'
if exists(p):
pg_hba = p
if version in ('8.4', 'auto'):
p = '/usr/share/postgresql/8.4/contrib/postgis.sql'
if exists(p):
postgis_sql = p
p = '/usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql'
if exists(p):
postgis_sql = p
p = '/usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql'
if exists(p):
spatial_ref_sys_sql = p
p = '/usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql'
if exists(p):
spatial_ref_sys_sql = p
p = '/etc/postgresql/8.4/main/pg_hba.conf'
if exists(p):
pg_hba = p
mapping['postgis_sql'] = postgis_sql
mapping['spatial_ref_sys_sql'] = spatial_ref_sys_sql
mapping['pg_hba'] = pg_hba
def main():
usage = '%prog [options]'
desc = 'Outputs shell commands to create a PostGIS database.'
parser = optparse.OptionParser(usage=usage, description=desc)
parser.add_option('--database', dest='dbname', metavar='osm', default='osm')
parser.add_option('--user', dest='user', metavar='osm', default='osm')
parser.add_option('--password', dest='password', metavar='osm', default='osm')
parser.add_option('--pg-version', dest='pg_version', metavar='8.3|8.4|auto', default='auto')
(options, args) = parser.parse_args()
mapping = {
'user': options.user,
'dbname': options.dbname,
'password': options.password,
}
mapping['epsg900913_sql'] = '/usr/share/python-imposm/900913.sql'
find_sql_files(options.pg_version, mapping)
template = string.Template(db_create_template)
print template.substitute(mapping)
if __name__ == '__main__':
main()
|