--- /dev/null
+#!/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)
+