install.py

changeset 1115
3032cc87dee2
parent 945
8cd4d08fa9f6
child 1130
3e9f0330f833
--- a/install.py	Mon Jun 06 19:53:20 2011 +0200
+++ b/install.py	Tue Jun 07 08:40:05 2011 +0200
@@ -204,7 +204,7 @@
     return wname
 
 
-def copyTree(src, dst, filters, excludeDirs=[]):
+def copyTree(src, dst, filters, excludeDirs=[], excludePatterns=[]):
     """
     Copy Python, translation, documentation, wizards configuration,
     designer template files and DTDs of a directory tree.
@@ -213,6 +213,7 @@
     @param dst name of the destination directory
     @param filters list of filter pattern determining the files to be copied
     @param excludeDirs list of (sub)directories to exclude from copying
+    @keyparam excludePatterns list of filter pattern determining the files to be skipped
     """
     try:
         names = os.listdir(src)
@@ -220,17 +221,23 @@
         return      # ignore missing directories (most probably the i18n directory)
     
     for name in names:
-        srcname = os.path.join(src, name)
-        dstname = os.path.join(dst, name)
-        for filter in filters:
-            if fnmatch.fnmatch(srcname, filter):
-                if not os.path.isdir(dst):
-                    os.makedirs(dst)
-                shutil.copy2(srcname, dstname)
+        skipIt = False
+        for excludePattern in excludePatterns:
+            if fnmatch.fnmatch(name, excludePattern):
+                skipIt = True
                 break
-        else:
-            if os.path.isdir(srcname) and not srcname in excludeDirs:
-                copyTree(srcname, dstname, filters)
+        if not skipIt:
+            srcname = os.path.join(src, name)
+            dstname = os.path.join(dst, name)
+            for filter in filters:
+                if fnmatch.fnmatch(srcname, filter):
+                    if not os.path.isdir(dst):
+                        os.makedirs(dst)
+                    shutil.copy2(srcname, dstname)
+                    break
+            else:
+                if os.path.isdir(srcname) and not srcname in excludeDirs:
+                    copyTree(srcname, dstname, filters, excludePatterns=excludePatterns)
 
 
 def createGlobalPluginsDir():
@@ -385,7 +392,8 @@
         
         # copy the various parts of eric5
         copyTree(sourceDir, cfg['ericDir'], ['*.py', '*.pyc', '*.pyo', '*.pyw'],
-            ['{1}{0}Examples'.format(os.sep, sourceDir)])
+            ['{1}{0}Examples'.format(os.sep, sourceDir)], 
+            excludePatterns=["eric5config.py*"])
         copyTree(sourceDir, cfg['ericDir'], ['*.rb'],
             ['{1}{0}Examples'.format(os.sep, sourceDir)])
         copyTree('{1}{0}Plugins'.format(os.sep, sourceDir),

eric ide

mercurial