import subprocess
import tempfile
from srsbrowser.models import EPSG 

geotools_root = "/Users/crschmidt/geotools-2.5.1"
classpath = "gt-referencing-2.5.1.jar:geoapi-2.2-M1.jar:hsqldb-1.8.0.7.jar:vecmath-1.3.1.jar"
classpath = ":".join(map(lambda x: "%s/%s" % (geotools_root, x), classpath.split(":")))
classpath = "/Users/crschmidt/gt-epsg-hsql-2.6-SNAPSHOT.jar:%s" % classpath
cls = "org.geotools.referencing.CRS"
print classpath
#t = tempfile.TemporaryFile()
#args = ["java", "-classpath", classpath, cls, "-codes"]
#print " ".join(args)
#out = subprocess.call(["java", "-classpath", classpath, cls, "-codes"], stdout = t)
#
#t.seek(0)
#code_list = t.read()
#
#codes = []
#import re
#match = re.compile("((EPSG|CRS):[0-9]+)")
#
#for line in code_list.split("\n"):
#    out = match.findall(line)
#    if out:
#        codes.append(out[0][0])

codes = EPSG.objects.filter(wkt='')

for code in codes:
    t = tempfile.TemporaryFile()
    out = subprocess.call(["java", "-classpath", classpath, cls, "EPSG:%s" % code.srs_id], stdout = t)
    t.seek(0)
    wkt = t.read().strip()
    #(type, id) = code.split(":")
    #type = type.lower()
    #srs = SRS.objects.filter(type=type, srs_id=id)
    #if srs.count():
    #    srs = srs[0]
    #    srs.wkt = wkt
    #else:
    #    srs = SRS(type=type, srs_id=id, wkt=wkt)
    lines = wkt.split("\n")
    if lines[-1].startswith("Warning:"):
        wkt = "\n".join(lines[:-2])
    print wkt
    code.wkt = wkt
    code.save()
    print "Saved %s as %s" % (code.srs_id, code.id)
