# File lib/puppet/type/file.rb, line 464
464:   def recurse
465:     children = {}
466:     children = recurse_local if self[:recurse] != :remote
467: 
468:     if self[:target]
469:       recurse_link(children)
470:     elsif self[:source]
471:       recurse_remote(children)
472:     end
473: 
474:     # If we're purging resources, then delete any resource that isn't on the
475:     # remote system.
476:     mark_children_for_purging(children) if self.purge?
477: 
478:     result = children.values.sort { |a, b| a[:path] <=> b[:path] }
479:     remove_less_specific_files(result)
480:   end