Fix rendering onto mounted CIFS shares
You still shouldn't do it for performance reasons but I guess now you can do it in theory. Yay.
This commit is contained in:
@@ -181,6 +181,10 @@ top-level directory.
|
|||||||
od_fd = os.open(self.outputdir, os.O_DIRECTORY)
|
od_fd = os.open(self.outputdir, os.O_DIRECTORY)
|
||||||
try:
|
try:
|
||||||
os.symlink("markers", "icons", target_is_directory=True, dir_fd=od_fd)
|
os.symlink("markers", "icons", target_is_directory=True, dir_fd=od_fd)
|
||||||
|
except OSError:
|
||||||
|
# Example setup where this happens:
|
||||||
|
# Linux renders onto Windows CIFS share
|
||||||
|
logging.warning("Could not create the icons symlink")
|
||||||
finally:
|
finally:
|
||||||
os.close(od_fd)
|
os.close(od_fd)
|
||||||
# write a dummy baseMarkers.js if none exists
|
# write a dummy baseMarkers.js if none exists
|
||||||
|
|||||||
@@ -47,18 +47,23 @@ def does_chmod_work(dir_to_test):
|
|||||||
return chmod_works
|
return chmod_works
|
||||||
|
|
||||||
def does_rename_work(dir_to_test):
|
def does_rename_work(dir_to_test):
|
||||||
|
try:
|
||||||
with tempfile.NamedTemporaryFile(dir=dir_to_test) as f1:
|
with tempfile.NamedTemporaryFile(dir=dir_to_test) as f1:
|
||||||
with tempfile.NamedTemporaryFile(dir=dir_to_test) as f2:
|
with tempfile.NamedTemporaryFile(dir=dir_to_test) as f2:
|
||||||
try:
|
try:
|
||||||
os.rename(f1.name,f2.name)
|
os.rename(f1.name,f2.name)
|
||||||
except OSError:
|
except OSError:
|
||||||
renameworks = False
|
renameworks = False
|
||||||
logging.debug("Detected that overwriting renames do NOT work in %r" % dir_to_test)
|
logging.debug("Detected that overwriting renames do NOT work in %r"
|
||||||
|
% dir_to_test)
|
||||||
else:
|
else:
|
||||||
renameworks = True
|
renameworks = True
|
||||||
logging.debug("Detected that overwriting renames work in %r" % dir_to_test)
|
logging.debug("Detected that overwriting renames work in %r" % dir_to_test)
|
||||||
# re-make this file so it can be deleted without error
|
# re-make this file so it can be deleted without error
|
||||||
open(f1.name, 'w').close()
|
open(f1.name, 'w').close()
|
||||||
|
except FileNotFoundError:
|
||||||
|
# Special handling for CIFS, which simply cannot cope with any rename whatsoever
|
||||||
|
renameworks = False
|
||||||
return renameworks
|
return renameworks
|
||||||
|
|
||||||
## useful recursive copy, that ignores common OS cruft
|
## useful recursive copy, that ignores common OS cruft
|
||||||
|
|||||||
Reference in New Issue
Block a user