@ -5,6 +5,7 @@ from __future__ import annotations
from os import path , walk
import re
import pathlib
import ansible . constants as C
from ansible . errors import AnsibleError
@ -181,16 +182,15 @@ class ActionModule(ActionBase):
alphabetical order . Do not iterate pass the set depth .
The default depth is unlimited .
"""
current_depth = 0
sorted_walk = list ( walk ( self . source_dir , onerror = self . _log_walk , followlinks = True ) )
sorted_walk . sort ( key = lambda x : x [ 0 ] )
for current_root , current_dir , current_files in sorted_walk :
current_depth + = 1
if current_depth < = self . depth or self . depth == 0 :
current_files . sort ( )
yield ( current_root , current_files )
else :
break
# Depth 1 is the root, relative_to omits the root
current_depth = len ( pathlib . Path ( current_root ) . relative_to ( self . source_dir ) . parts ) + 1
if self . depth != 0 and current_depth > self . depth :
continue
current_files . sort ( )
yield ( current_root , current_files )
def _ignore_file ( self , filename ) :
""" Return True if a file matches the list of ignore_files.