| # SPDX-License-Identifier: Apache-2.0 |
| # Copyright 2012-2021 The Meson development team |
| # Copyright © 2021-2023 Intel Corporation |
| |
| from __future__ import annotations |
| |
| """base classes providing no-op functionality..""" |
| |
| import enum |
| import os |
| import typing as T |
| |
| from .. import mlog |
| |
| __all__ = ['DirectoryLock', 'DirectoryLockAction', 'DirectoryLockBase'] |
| |
| class DirectoryLockAction(enum.Enum): |
| IGNORE = 0 |
| WAIT = 1 |
| FAIL = 2 |
| |
| class DirectoryLockBase: |
| def __init__(self, directory: str, lockfile: str, action: DirectoryLockAction, err: str) -> None: |
| self.action = action |
| self.err = err |
| self.lockpath = os.path.join(directory, lockfile) |
| |
| def __enter__(self) -> None: |
| mlog.debug('Calling the no-op version of DirectoryLock') |
| |
| def __exit__(self, *args: T.Any) -> None: |
| pass |
| |
| class DirectoryLock(DirectoryLockBase): |
| pass |