123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- """
- Created on Thu Aug 23 11:07:38 2012
- @author: pietro
- """
- from __future__ import (
- nested_scopes,
- generators,
- division,
- absolute_import,
- with_statement,
- print_function,
- unicode_literals,
- )
- import os
- import subprocess
- import optparse
- from grass.script import core as grasscore
- def read_gisrc(gisrcpath):
- gisrc = open(gisrcpath, "r")
- diz = {}
- for row in gisrc:
- key, val = row.split(":")
- diz[key.strip()] = val.strip()
- return diz
- def main():
- # default option
- gisrc = read_gisrc(os.environ["GISRC"])
- user = os.environ["USER"]
- # start optparse
- usage = "usage: %prog [options]"
- parser = optparse.OptionParser(usage=usage)
- parser.add_option(
- "-U",
- "--user",
- dest="user",
- default=user,
- help="PostgreSQL user [default=%default]",
- )
- parser.add_option(
- "-P",
- "--password",
- dest="passwd",
- default=None,
- help="PostgreSQL password for user [default=%default]",
- )
- parser.add_option(
- "-D",
- "--database",
- dest="db",
- default="pygrassdb_doctest",
- help="PostgreSQL database name [default=%default]",
- )
- (opts, args) = parser.parse_args()
- #
- # Create DB
- #
- print("\n\nCreate a new DB: %s...\n" % opts.db)
- createdb = [
- "createdb",
- "--encoding=UTF-8",
- "--owner=%s" % opts.user,
- "--host=localhost",
- "--username=%s" % opts.user,
- opts.db,
- ]
- if opts.passwd:
- print(opts.passwd)
- createdb.append("--password=%s" % opts.passwd)
- else:
- createdb.append("--no-password")
- subprocess.Popen(createdb)
- #
- # set postgreSQL
- #
- print("\n\nSet Postgres connection...\n")
- grasscore.run_command(
- "db.connect", driver="pg", database="host=localhost,dbname=%s" % opts.db
- )
- grasscore.run_command("db.login", user=opts.user)
- print("\n\nCopy the map from PERMANENT to user1...\n")
- grasscore.run_command(
- "g.copy", vector="boundary_municp@PERMANENT,boundary_municp_pg", overwrite=True
- )
- print("\n\nBuild topology...\n")
- grasscore.run_command("v.build", map="boundary_municp_pg", overwrite=True)
- #
- # set sqlite
- #
- db = [gisrc["GISDBASE"], gisrc["LOCATION_NAME"], gisrc["MAPSET"], "sqlite.db"]
- print("\n\nSet Sqlite connection...\n")
- grasscore.run_command("db.connect", driver="sqlite", database=os.path.join(db))
- print("\n\nCopy the map from PERMANENT to user1...\n")
- grasscore.run_command(
- "g.copy",
- vector="boundary_municp@PERMANENT,boundary_municp_sqlite",
- overwrite=True,
- )
- print("\n\nBuild topology...\n")
- grasscore.run_command("v.build", map="boundary_municp_sqlite", overwrite=True)
- if __name__ == "__main__":
- main()
|