]> granicus.if.org Git - python/commitdiff
Patch from Andrew Kuchling: allow multiple include/exclude patterns
authorGreg Ward <gward@python.net>
Fri, 21 Apr 2000 04:31:10 +0000 (04:31 +0000)
committerGreg Ward <gward@python.net>
Fri, 21 Apr 2000 04:31:10 +0000 (04:31 +0000)
for all commands except 'prune' and 'graft'.

Lib/distutils/command/sdist.py

index f3cc041e7d62a6bc849bedb33aa47e36b85b1765..59dd624813449a60eb2d851bb4601c12e33d5606 100644 (file)
@@ -310,24 +310,25 @@ class sdist (Command):
             # for the given action (which is the first word)
             if action in ('include','exclude',
                           'global-include','global-exclude'):
-                if len (words) != 2:
+                if len (words) < 2:
                     template.warn \
                         ("invalid manifest template line: " +
-                         "'%s' expects a single <pattern>" %
+                         "'%s' expects <pattern1> <pattern2> ..." %
                          action)
                     continue
 
-                pattern = native_path (words[1])
+                pattern_list = map(native_path, words[1:])
 
             elif action in ('recursive-include','recursive-exclude'):
-                if len (words) != 3:
+                if len (words) < 3:
                     template.warn \
                         ("invalid manifest template line: " +
-                         "'%s' expects <dir> <pattern>" %
+                         "'%s' expects <dir> <pattern1> <pattern2> ..." %
                          action)
                     continue
 
-                (dir, pattern) = map (native_path, words[1:3])
+                dir = native_path(words[1])
+                pattern_list = map (native_path, words[2:])
 
             elif action in ('graft','prune'):
                 if len (words) != 2:
@@ -352,58 +353,64 @@ class sdist (Command):
             # digging stuff up out of 'words'.
 
             if action == 'include':
-                print "include", pattern
-                files = select_pattern (all_files, pattern, anchor=1)
-                if not files:
-                    template.warn ("no files found matching '%s'" % pattern)
-                else:
-                    self.files.extend (files)
+                print "include", string.join(pattern_list)
+                for pattern in pattern_list:
+                    files = select_pattern (all_files, pattern, anchor=1)
+                    if not files:
+                        template.warn ("no files found matching '%s'" % pattern)
+                    else:
+                        self.files.extend (files)
 
             elif action == 'exclude':
-                print "exclude", pattern
-                num = exclude_pattern (self.files, pattern, anchor=1)
-                if num == 0:
-                    template.warn \
-                        ("no previously-included files found matching '%s'" %
-                         pattern)
+                print "exclude", string.join(pattern_list)
+                for pattern in pattern_list:
+                    num = exclude_pattern (self.files, pattern, anchor=1)
+                    if num == 0:
+                        template.warn (
+                            "no previously-included files found matching '%s'"%
+                            pattern)
 
             elif action == 'global-include':
-                print "global-include", pattern
-                files = select_pattern (all_files, pattern, anchor=0)
-                if not files:
-                    template.warn (("no files found matching '%s' " +
-                                    "anywhere in distribution") %
-                                   pattern)
-                else:
-                    self.files.extend (files)
+                print "global-include", string.join(pattern_list)
+                for pattern in pattern_list:
+                    files = select_pattern (all_files, pattern, anchor=0)
+                    if not files:
+                        template.warn (("no files found matching '%s' " +
+                                        "anywhere in distribution") %
+                                       pattern)
+                    else:
+                        self.files.extend (files)
 
             elif action == 'global-exclude':
-                print "global-exclude", pattern
-                num = exclude_pattern (self.files, pattern, anchor=0)
-                if num == 0:
-                    template.warn \
-                        (("no previously-included files matching '%s' " +
-                          "found anywhere in distribution") %
-                         pattern)
+                print "global-exclude", string.join(pattern_list)
+                for pattern in pattern_list:
+                    num = exclude_pattern (self.files, pattern, anchor=0)
+                    if num == 0:
+                        template.warn \
+                            (("no previously-included files matching '%s' " +
+                              "found anywhere in distribution") %
+                             pattern)
 
             elif action == 'recursive-include':
-                print "recursive-include", dir, pattern
-                files = select_pattern (all_files, pattern, prefix=dir)
-                if not files:
-                    template.warn (("no files found matching '%s' " +
-                                    "under directory '%s'") %
-                                   (pattern, dir))
-                else:
-                    self.files.extend (files)
+                print "recursive-include", dir, string.join(pattern_list)
+                for pattern in pattern_list:
+                    files = select_pattern (all_files, pattern, prefix=dir)
+                    if not files:
+                        template.warn (("no files found matching '%s' " +
+                                        "under directory '%s'") %
+                                       (pattern, dir))
+                    else:
+                        self.files.extend (files)
 
             elif action == 'recursive-exclude':
-                print "recursive-exclude", dir, pattern
-                num = exclude_pattern (self.files, pattern, prefix=dir)
-                if num == 0:
-                    template.warn \
-                        (("no previously-included files matching '%s' " +
-                          "found under directory '%s'") %
-                         (pattern, dir))
+                print "recursive-exclude", dir, string.join(pattern_list)
+                for pattern in pattern_list:
+                    num = exclude_pattern (self.files, pattern, prefix=dir)
+                    if num == 0:
+                        template.warn \
+                            (("no previously-included files matching '%s' " +
+                              "found under directory '%s'") %
+                             (pattern, dir))
 
             elif action == 'graft':
                 print "graft", dir_pattern