mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2025-05-14 23:24:30 -04:00
playwright: support PLAYWRIGHT_BROWSERS_PATH environment variable
This environment variable is used by Playwright to configure where to install browsers. If specified, the given directory is used instead of the OS-specific cache folder. For compatibility with existing Playwright installations, and better control over where these binaries are installed, check the same environment variable in PlaywrightBinProvider. Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
This commit is contained in:
parent
27f26fdde8
commit
49c520914c
1 changed files with 19 additions and 5 deletions
|
@ -37,11 +37,6 @@ class PlaywrightBinProvider(BaseBinProvider):
|
||||||
|
|
||||||
PATH: PATHStr = f"{CONSTANTS.DEFAULT_LIB_DIR / 'bin'}:{DEFAULT_ENV_PATH}"
|
PATH: PATHStr = f"{CONSTANTS.DEFAULT_LIB_DIR / 'bin'}:{DEFAULT_ENV_PATH}"
|
||||||
|
|
||||||
playwright_browsers_dir: Path = (
|
|
||||||
MACOS_PLAYWRIGHT_CACHE_DIR.expanduser()
|
|
||||||
if OPERATING_SYSTEM == "darwin" else
|
|
||||||
LINUX_PLAYWRIGHT_CACHE_DIR.expanduser()
|
|
||||||
)
|
|
||||||
playwright_install_args: List[str] = ["install"]
|
playwright_install_args: List[str] = ["install"]
|
||||||
|
|
||||||
packages_handler: BinProviderOverrides = Field(default={
|
packages_handler: BinProviderOverrides = Field(default={
|
||||||
|
@ -58,6 +53,25 @@ class PlaywrightBinProvider(BaseBinProvider):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@computed_field
|
||||||
|
@property
|
||||||
|
def playwright_browsers_dir(self) -> Path:
|
||||||
|
# The directory where playwright stores browsers can be overridden with
|
||||||
|
# the "PLAYWRIGHT_BROWSERS_PATH" environment variable; if it's present
|
||||||
|
# and a directory, we should use that. See the playwright documentation
|
||||||
|
# for more details:
|
||||||
|
# https://playwright.dev/docs/browsers#managing-browser-binaries
|
||||||
|
dir_path = os.environ.get("PLAYWRIGHT_BROWSERS_PATH")
|
||||||
|
if dir_path and os.path.isdir(dir_path):
|
||||||
|
return Path(dir_path)
|
||||||
|
|
||||||
|
# Otherwise return the default path based on the operating system.
|
||||||
|
return (
|
||||||
|
MACOS_PLAYWRIGHT_CACHE_DIR.expanduser()
|
||||||
|
if OPERATING_SYSTEM == "darwin" else
|
||||||
|
LINUX_PLAYWRIGHT_CACHE_DIR.expanduser()
|
||||||
|
)
|
||||||
|
|
||||||
def setup(self) -> None:
|
def setup(self) -> None:
|
||||||
# update paths from config if they arent the default
|
# update paths from config if they arent the default
|
||||||
from archivebox.config.common import STORAGE_CONFIG
|
from archivebox.config.common import STORAGE_CONFIG
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue