File tree 1 file changed +9
-1
lines changed 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change 17
17
splitext_addext )
18
18
from .openers import ImageOpener
19
19
20
+ # OS-specific path
21
+ _GIT_ANNEX_OBJECTS_PATH = os .path .join ('.git' , 'annex' , 'objects' )
22
+
23
+ def _is_annex_symlink (path ):
24
+ """Return True if file is a symlink to the git-annex objects"""
25
+ return os .path .islink (path ) and _GIT_ANNEX_OBJECTS_PATH in os .path .realpath (path )
26
+
20
27
21
28
class ImageFileError (Exception ):
22
29
pass
@@ -349,10 +356,11 @@ def to_filename(self, filename):
349
356
None
350
357
'''
351
358
self .file_map = file_map = self .filespec_to_file_map (filename )
359
+ remove_env = os .environ .get ('NIBABEL_REMOVE_BEFORE_TO_FILENAME' , None )
352
360
for _ , fh in file_map .items ():
353
361
if not isinstance (fh , FileHolder ):
354
362
continue
355
- if os .path .exists (fh .filename ):
363
+ if os .path .lexists (fh .filename ) and ( remove_env or _is_annex_symlink ( fh . filename ) ):
356
364
# Remove previous file where new file would be saved
357
365
# Necessary e.g. for cases where file is a symlink pointing
358
366
# to some non-writable file (e.g. under git annex control)
You can’t perform that action at this time.
0 commit comments