Source code for pyCloudflareUpdater.utils.stat
# pyCloudFlareUpdater
# Copyright (C) 2021 - Javinator9889
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
from typing import Optional, TypeVar
PathT = TypeVar("PathT", str, bytes, os.PathLike)
[docs]def ensure_permissions(path: PathT,
perms: int,
dir_fd: Optional[int] = None) -> bool:
st = os.stat(path, dir_fd=dir_fd)
return bool(st.st_mode & perms)
[docs]def change_permissions(path: PathT,
perms: int,
dir_fd=None):
os.chown(path, os.geteuid(), os.getegid(), dir_fd=dir_fd)
os.chmod(path, perms, dir_fd=dir_fd)