File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change 1717 splitext_addext )
1818from .openers import ImageOpener
1919
20+ # OS-specific path
21+ _GIT_ANNEX_OBJECTS_PATH = os .path .join ('.git' , 'annex' , 'objects' )
22+
23+
24+ def _is_annex_symlink (path ):
25+ """Return True if file is a symlink to the git-annex objects"""
26+ return os .path .islink (path ) and _GIT_ANNEX_OBJECTS_PATH in os .path .realpath (path )
27+
2028
2129class ImageFileError (Exception ):
2230 pass
@@ -349,10 +357,11 @@ def to_filename(self, filename):
349357 None
350358 '''
351359 self .file_map = file_map = self .filespec_to_file_map (filename )
360+ remove_env = os .environ .get ('NIBABEL_REMOVE_BEFORE_TO_FILENAME' , None )
352361 for _ , fh in file_map .items ():
353362 if not isinstance (fh , FileHolder ):
354363 continue
355- if os .path .exists (fh .filename ):
364+ if os .path .lexists (fh .filename ) and ( remove_env or _is_annex_symlink ( fh . filename ) ):
356365 # Remove previous file where new file would be saved
357366 # Necessary e.g. for cases where file is a symlink pointing
358367 # to some non-writable file (e.g. under git annex control)
You can’t perform that action at this time.
0 commit comments