aboutsummaryrefslogtreecommitdiffstats
path: root/build_scripts/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'build_scripts/utils.py')
-rw-r--r--build_scripts/utils.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/build_scripts/utils.py b/build_scripts/utils.py
index db95df8a8..af40916b7 100644
--- a/build_scripts/utils.py
+++ b/build_scripts/utils.py
@@ -39,6 +39,7 @@
import sys
import os
+import stat
import re
import stat
import errno
@@ -274,7 +275,8 @@ def init_msvc_env(platform_arch, build_type):
log.info("Done initializing MSVC env")
-def copyfile(src, dst, force=True, vars=None, force_copy_symlink=False):
+def copyfile(src, dst, force=True, vars=None, force_copy_symlink=False,
+ make_writable_by_owner=False):
if vars is not None:
src = src.format(**vars)
dst = dst.format(**vars)
@@ -287,6 +289,9 @@ def copyfile(src, dst, force=True, vars=None, force_copy_symlink=False):
if not os.path.islink(src) or force_copy_symlink:
log.info("Copying file {} to {}.".format(src, dst))
shutil.copy2(src, dst)
+ if make_writable_by_owner:
+ make_file_writable_by_owner(dst)
+
else:
linkTargetPath = os.path.realpath(src)
if os.path.dirname(linkTargetPath) == os.path.dirname(src):
@@ -400,6 +405,9 @@ def copydir(src, dst, filter=None, ignore=None, force=True, recursive=True,
raise EnvironmentError(errors)
return results
+def make_file_writable_by_owner(path):
+ current_permissions = stat.S_IMODE(os.lstat(path).st_mode)
+ os.chmod(path, current_permissions | stat.S_IWUSR)
def rmtree(dirname):
def handleRemoveReadonly(func, path, exc):