summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdarsh Sanjeev <adarshsanjeev@gmail.com>2016-01-04 17:50:59 (GMT)
committerAdarsh Sanjeev <adarshsanjeev@gmail.com>2016-01-04 17:50:59 (GMT)
commitea232cd3c7b8af29de3fa2619a20e7a24886cdcb (patch)
treebe253ecc9a2a5ff3a14927ba09e24c5e6913a4e0 /src
parent9ee508ee318cb51f3ff7194a0385a2ba74dcedd9 (diff)
downloadSCons-ea232cd3c7b8af29de3fa2619a20e7a24886cdcb.zip
SCons-ea232cd3c7b8af29de3fa2619a20e7a24886cdcb.tar.gz
SCons-ea232cd3c7b8af29de3fa2619a20e7a24886cdcb.tar.bz2
Changed as per review
Diffstat (limited to 'src')
-rw-r--r--src/engine/SCons/Defaults.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py
index 0fbd097..6344975 100644
--- a/src/engine/SCons/Defaults.py
+++ b/src/engine/SCons/Defaults.py
@@ -188,10 +188,14 @@ permission_dic = {
}
def chmod_func(dest, mode):
+ import SCons.Util
+ from string import digits
SCons.Node.FS.invalidate_node_memos(dest)
if not SCons.Util.is_List(dest):
dest = [dest]
- if str(mode).isdigit():
+ if SCons.Util.is_String(mode) and not 0 in [i in digits for i in mode]:
+ mode = int(mode, 8)
+ if not SCons.Util.is_String(mode):
for element in dest:
os.chmod(str(element), mode)
else:
@@ -205,8 +209,11 @@ def chmod_func(dest, mode):
operator = "-"
else:
raise SyntaxError("Could not find +, - or =")
- user = operation.split(operator)[0].strip().replace("a", "ugo")
- permission = operation.split(operator)[1].strip()
+ operation_list = operation.split(operator)
+ if len(operation_list) is not 2:
+ raise SyntaxError("More than one operator found")
+ user = operation_list[0].strip().replace("a", "ugo")
+ permission = operation_list[1].strip()
new_perm = 0
for u in user:
for p in permission:
@@ -224,7 +231,8 @@ def chmod_func(dest, mode):
os.chmod(str(element), curr_perm & ~new_perm)
def chmod_strfunc(dest, mode):
- if str(mode).isdigit():
+ import SCons.Util
+ if not SCons.Util.is_String(mode):
return 'Chmod(%s, 0%o)' % (get_paths_str(dest), mode)
else:
return 'Chmod(%s, "%s")' % (get_paths_str(dest), str(mode))