@@ -149,21 +149,21 @@ def __init__(self, referenced_files, basedir, stagedir, separateDirs=True):
149149 self .separateDirs = separateDirs
150150 self .setup (dedup (referenced_files ), basedir )
151151
152- def visitlisting (self , listing , stagedir , basedir ):
153- # type: (List[Dict[Text, Any]], Text, Text) -> None
152+ def visitlisting (self , listing , stagedir , basedir , copy = False ):
153+ # type: (List[Dict[Text, Any]], Text, Text, bool ) -> None
154154 for ld in listing :
155155 tgt = os .path .join (stagedir , ld ["basename" ])
156156 if ld ["class" ] == "Directory" :
157- self .visit (ld , stagedir , basedir , copy = ld .get ("writable" , False ))
157+ self .visit (ld , stagedir , basedir , copy = ld .get ("writable" , copy ))
158158 else :
159- self .visit (ld , stagedir , basedir , copy = ld .get ("writable" , False ))
159+ self .visit (ld , stagedir , basedir , copy = ld .get ("writable" , copy ))
160160
161161 def visit (self , obj , stagedir , basedir , copy = False ):
162162 # type: (Dict[Text, Any], Text, Text, bool) -> None
163163 tgt = os .path .join (stagedir , obj ["basename" ])
164164 if obj ["class" ] == "Directory" :
165165 self ._pathmap [obj ["location" ]] = MapperEnt (obj ["location" ], tgt , "Directory" )
166- self .visitlisting (obj .get ("listing" , []), tgt , basedir )
166+ self .visitlisting (obj .get ("listing" , []), tgt , basedir , copy = copy )
167167 elif obj ["class" ] == "File" :
168168 path = obj ["location" ]
169169 if path in self ._pathmap :
@@ -186,7 +186,7 @@ def visit(self, obj, stagedir, basedir, copy=False):
186186 st = os .lstat (deref )
187187
188188 self ._pathmap [path ] = MapperEnt (deref , tgt , "File" )
189- self .visitlisting (obj .get ("secondaryFiles" , []), stagedir , basedir )
189+ self .visitlisting (obj .get ("secondaryFiles" , []), stagedir , basedir , copy = copy )
190190
191191 def setup (self , referenced_files , basedir ):
192192 # type: (List[Any], Text) -> None
0 commit comments