aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xshare/Perms.py27
1 files changed, 4 insertions, 23 deletions
diff --git a/share/Perms.py b/share/Perms.py
index 59dab97..ff4af73 100755
--- a/share/Perms.py
+++ b/share/Perms.py
@@ -117,20 +117,6 @@ def build_non_localfs_regexp():
else:
return re.compile(regexp + REGEXP_END)
-# resolv symlink
-def get_sylink_name(path):
- try:
- p = os.readlink(path)
- except OSError:
- return path
- if p and p[0] != '/':
- p = os.path.dirname(path) + '/' + p
- p = os.path.abspath(p)
- if p == path:
- return path
- else:
- return get_sylink_name(p)
-
# put the new perm/group/owner in the assoc variable according to the
# content of the path file.
assoc = {}
@@ -192,20 +178,15 @@ def fix_perms(path, _interactive, force):
if fieldcount == 4:
for f in glob.glob(fields[0]):
newperm = perm
- if fs_regexp and fs_regexp.search(f):
- _interactive and log(_('Non local file: "%s". Nothing changed.') % fields[0])
- continue
+ f = os.path.realpath(f)
try:
full = os.lstat(f)
except OSError:
continue
- if stat.S_ISLNK(full[stat.ST_MODE]):
- f = get_sylink_name(f)
- try:
- full = os.stat(f)
- except OSError:
- continue
+ if fs_regexp and fs_regexp.search(f):
+ _interactive and log(_('Non local file: "%s". Nothing changed.') % fields[0])
+ continue
mode = stat.S_IMODE(full[stat.ST_MODE])