| # Copyright 2024 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import os |
| import pathlib |
| |
| |
| class GetBuildDirectoryError(Exception): |
| pass |
| |
| |
| def get_build_directory() -> pathlib.Path: |
| """Get the current Fuchsia build directory. |
| |
| This function uses the value set by the `fx` wrapper that is passed to |
| the calling script. |
| |
| This function will raise an error if the appropriate environment variable |
| is not set, which likely indicates that it is being executed outside of fx. |
| |
| Returns: |
| Path: Path to the build directory |
| |
| Raises: |
| GetBuildDirectoryError: If the build directory could not |
| be determined, or if this function was called by a script |
| that was not executed by `fx`. |
| """ |
| |
| path = os.getenv("FUCHSIA_BUILD_DIR_FROM_FX") |
| if not path: |
| raise GetBuildDirectoryError( |
| "Could not determine Fuchsia build directory. Make sure that this script is being executed by `fx` and not directly." |
| ) |
| |
| return pathlib.Path(path) |