diff --git a/ops.py b/ops.py index 30a5513..ec919be 100644 --- a/ops.py +++ b/ops.py @@ -27,20 +27,10 @@ log = logging.getLogger('ops') type_ = type -darwin = sys.platform == 'darwin' class Error(Exception): pass class ValidationError(Error): pass -def _uid_gid(path, uid, gid): - if uid == -1 or gid == -1: - st = stat(path) - if uid == -1: - uid = st.st_uid - if gid == -1: - gid = st.st_gid - return uid, gid - def _chmod(path, value=None): try: os.chmod(path, value.numeric) @@ -80,8 +70,12 @@ def _chown(path, uid=-1, gid=-1): log.error('chown: invalid uid or gid: %s' % path) return False # hack around Apple's broken patch (http://bugs.python.org/issue13315) - if darwin: - uid, gid = _uid_gid(path, uid, gid) + if sys.platform == 'darwin' and uid == -1 or gid == -1: + st = stat(path) + if uid == -1: + uid = st.st_uid + if gid == -1: + gid = st.st_gid try: os.chown(path, uid, gid) return True