@@ -71,20 +71,20 @@ def visitlisting(self, listing, stagedir, basedir):
71
71
if "entryname" in ld :
72
72
tgt = os .path .join (stagedir , ld ["entryname" ])
73
73
if isinstance (ld ["entry" ], (str , unicode )):
74
- self ._pathmap [str (id (ld ["entry" ]))] = MapperEnt (ld ["entry" ], tgt , "Copy " )
74
+ self ._pathmap [str (id (ld ["entry" ]))] = MapperEnt (ld ["entry" ], tgt , "CreateFile " )
75
75
else :
76
76
if ld ["entry" ]["class" ] == "Directory" :
77
- self .visit (ld ["entry" ], tgt , basedir )
77
+ self .visit (ld ["entry" ], tgt , basedir , copy = ld . get ( "writable" , False ) )
78
78
else :
79
- self .visit (ld ["entry" ], stagedir , basedir , entryname = ld ["entryname" ])
79
+ self .visit (ld ["entry" ], stagedir , basedir , entryname = ld ["entryname" ], copy = ld . get ( "writable" , False ) )
80
80
#ab = ld["entry"]["location"]
81
81
#if ab.startswith("file://"):
82
82
# ab = ab[7:]
83
83
#self._pathmap[ld["entry"]["location"]] = MapperEnt(ab, tgt, ld["entry"]["class"])
84
84
elif ld .get ("class" ) == "File" :
85
- self .visit (ld , stagedir , basedir )
85
+ self .visit (ld , stagedir , basedir , copy = ld . get ( "writable" , False ) )
86
86
87
- def visit (self , obj , stagedir , basedir , entryname = None ):
87
+ def visit (self , obj , stagedir , basedir , entryname = None , copy = False ):
88
88
if obj ["class" ] == "Directory" :
89
89
if "location" in obj :
90
90
self ._pathmap [obj ["location" ]] = MapperEnt (obj ["location" ], stagedir , "Directory" )
@@ -100,7 +100,10 @@ def visit(self, obj, stagedir, basedir, entryname=None):
100
100
tgt = os .path .join (stagedir , entryname )
101
101
else :
102
102
tgt = os .path .join (stagedir , os .path .basename (path ))
103
- self ._pathmap [path ] = MapperEnt (ab , tgt , "File" )
103
+ if copy :
104
+ self ._pathmap [path ] = MapperEnt (ab , tgt , "WritableFile" )
105
+ else :
106
+ self ._pathmap [path ] = MapperEnt (ab , tgt , "File" )
104
107
self .visitlisting (obj .get ("secondaryFiles" , []), stagedir , basedir )
105
108
106
109
def setup (self , referenced_files , basedir ):
0 commit comments