docs: def ensure_permissions(path, user, group, permissions, maxdepth=-1):
      """Ensure permissions for path.
  
      If path is a file, apply to file and return. If path is a directory,
      apply recursively (if required) to directory contents and return.
  
      :param user: user name
      :param group: group name
      :param permissions: octal permissions
      :param maxdepth: maximum recursion depth. A negative maxdepth allows
                       infinite recursion and maxdepth=0 means no recursion.
      :returns: None
      """
      if not os.path.exists(path):
          log("File '%s' does not exist - cannot set permissions" % (path),
              level=WARNING)
          return
  
      _user = pwd.getpwnam(user)
      os.chown(path, _user.pw_uid, grp.getgrnam(group).gr_gid)
      os.chmod(path, permissions)
  
      if maxdepth == 0:
          log("Max recursion depth reached - skipping further recursion",
              level=DEBUG)
          return
      elif maxdepth > 0:
          maxdepth -= 1
  
      if os.path.isdir(path):
          contents = glob.glob("%s/*" % (path))
          for c in contents:
              ensure_permissions(c, user=user, group=group,
                                 permissions=permissions, maxdepth=maxdepth)