86 lines
3.1 KiB
Python
86 lines
3.1 KiB
Python
#!/usr/bin/env python
|
|
#
|
|
# TODO explain
|
|
#
|
|
# -- Copyright 2007 IGN France / Geoportail project --
|
|
#
|
|
|
|
import sys
|
|
import os
|
|
import re
|
|
|
|
SUFFIX_JAVASCRIPT = ".js"
|
|
|
|
def _pjcat2js_remove(rezDirectory,catName,targetDirectory):
|
|
pjCatFilename = os.path.join(rezDirectory, catName)
|
|
pjCat = open(pjCatFilename,'r')
|
|
comment_re = re.compile("^#")
|
|
srsdef_re = re.compile("^<([^>]*)>.* <>$")
|
|
l = pjCat.readline()
|
|
while len(l) != 0:
|
|
if comment_re.search(l) is None:
|
|
srsdef_mo = srsdef_re.match(l)
|
|
srsdef_fn = os.path.join(targetDirectory, catName+srsdef_mo.group(1)+".js")
|
|
if os.path.exists(srsdef_fn):
|
|
os.remove(srsdef_fn)
|
|
l = pjCat.readline()
|
|
pjCat.close()
|
|
|
|
def _pjcat2js_make(rezDirectory,catName,targetDirectory):
|
|
pjCatFilename = os.path.join(rezDirectory, catName)
|
|
pjCat = open(pjCatFilename,'r')
|
|
comment_re = re.compile("^#")
|
|
srsdef_re = re.compile("^<([^>]*)> *(.*) <>$")
|
|
l = pjCat.readline()
|
|
while len(l) != 0:
|
|
if comment_re.search(l) is None:
|
|
srsdef_mo = srsdef_re.match(l)
|
|
srsdef_fn = os.path.join(targetDirectory, catName+srsdef_mo.group(1)+".js")
|
|
srsdef = 'Proj4js.defs["'+catName+':'+srsdef_mo.group(1)+'"]="'+srsdef_mo.group(2)+'";'
|
|
file(srsdef_fn,'w').write(srsdef)
|
|
l = pjCat.readline()
|
|
pjCat.close()
|
|
|
|
def pjcat2js_clean(rezDirectory,targetDirectory):
|
|
if not os.path.isdir(rezDirectory):
|
|
return
|
|
if not os.path.isdir(targetDirectory):
|
|
return
|
|
if os.path.abspath(rezDirectory) == '/':
|
|
return
|
|
if os.path.abspath(targetDirectory) == '/':
|
|
return
|
|
rezDirectory_name_len = len(rezDirectory)
|
|
for root, dirs, filenames in os.walk(rezDirectory):
|
|
if 'CVS' in dirs:
|
|
dirs.remove('CVS')
|
|
if '.svn' in dirs:
|
|
dirs.remove('.svn')
|
|
for filename in filenames:
|
|
if not filename.endswith(SUFFIX_JAVASCRIPT) and not filename.startswith("."):
|
|
filepath = os.path.join(root, filename)[rezDirectory_name_len+1:]
|
|
filepath = filepath.replace("\\", "/")
|
|
_pjcat2js_remove(rezDirectory,filepath,targetDirectory)
|
|
|
|
def pjcat2js_run(rezDirectory,targetDirectory):
|
|
if not os.path.isdir(rezDirectory):
|
|
return
|
|
if not os.path.isdir(targetDirectory):
|
|
return
|
|
if os.path.abspath(rezDirectory) == '/':
|
|
return
|
|
if os.path.abspath(targetDirectory) == '/':
|
|
return
|
|
rezDirectory_name_len = len(rezDirectory)
|
|
for root, dirs, filenames in os.walk(rezDirectory):
|
|
if 'CVS' in dirs:
|
|
dirs.remove('CVS')
|
|
if '.svn' in dirs:
|
|
dirs.remove('.svn')
|
|
for filename in filenames:
|
|
if not filename.endswith(SUFFIX_JAVASCRIPT) and not filename.startswith("."):
|
|
filepath = os.path.join(root, filename)[rezDirectory_name_len+1:]
|
|
filepath = filepath.replace("\\", "/")
|
|
_pjcat2js_make(rezDirectory,filepath,targetDirectory)
|
|
|