12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/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)
|