/stdhome

To get this branch, use:
bzr branch http://bzr.ed.am/stdhome

« back to all changes in this revision

Viewing changes to lib/stdhome/walker/walker.py

  • Committer: Tim Marston
  • Date: 2016-04-17 21:00:42 UTC
  • Revision ID: tim@ed.am-20160417210042-njcd725axg87i20j
renamed tools dir to dev

Show diffs side-by-side

added added

removed removed

32
32
        process() for more information.
33
33
        """
34
34
 
35
 
 
36
35
        def walk( self ):
37
36
                """Iterates over self.walk_list, calling process() for each entry in turn.  For
38
37
                directory entries, where process() returns False, subsequent entries in
39
38
                walk_list that fall under the directory are skipped.
40
39
                """
41
40
 
42
 
                if the.verbose >= 3:
43
 
                        print "walking [%s]" % self.__class__.__name__
 
41
                if the.verbose >= 3: print "walking [%s]" % self.__class__.__name__
44
42
 
45
43
                skip = ''
46
44
                for rel_file in self.walk_list:
102
100
 
103
101
 
104
102
        @staticmethod
105
 
        def generate_walk_list( full_dir, rel_file = '', recurse = True ):
 
103
        def generate_walk_list( rel_file = '', full_dir = None ):
106
104
                """Returns a list of files and directories in full_dir, specified as relative
107
105
                files (relative to full_dir), breadth first.
108
 
 
109
106
                """
110
107
 
 
108
                # default place to walk
 
109
                if full_dir is None: full_dir = the.repo.full_dir
 
110
 
111
111
                # ignore some files
112
 
                static_ignores = [ '.stdhome', '.stdhomerc' ] + \
113
 
                                                 the.repo.vcs.ignored_files
114
 
                if rel_file in static_ignores:
 
112
                if rel_file in [ '.bzr', '.bzrignore', '.stdhome', '.stdhomerc' ]:
115
113
                        return list()
116
114
 
117
115
                full_file = os.path.join( full_dir, rel_file )
123
121
                # directories are returned and recursed in to
124
122
                elif os.path.isdir( full_file ):
125
123
                        ret = [ rel_file ] if rel_file != '' else []
126
 
                        if recurse:
127
 
                                for file in os.listdir( full_file ):
128
 
                                        ret.extend( Walker.generate_walk_list(
129
 
                                                full_dir, os.path.join( rel_file, file ) ) )
 
124
                        for file in os.listdir( full_file ):
 
125
                                ret.extend( Walker.generate_walk_list(
 
126
                                        os.path.join( rel_file, file ), full_dir ) )
130
127
                        return sorted( ret )
131
128
 
132
129
                # other kinds are invalid