# Copyright 2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

import stat

from portage import os
from portage.exception import PermissionDenied


def exists_raise_eaccess(path):
    try:
        os.stat(path)
    except OSError as e:
        if e.errno == PermissionDenied.errno:
            raise PermissionDenied(f"stat('{path}')")
        return False
    else:
        return True


def isdir_raise_eaccess(path):
    try:
        st = os.stat(path)
    except OSError as e:
        if e.errno == PermissionDenied.errno:
            raise PermissionDenied(f"stat('{path}')")
        return False
    else:
        return stat.S_ISDIR(st.st_mode)
