diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-05-16 11:20:29 -0500 |
|---|---|---|
| committer | SulfurNitride <lukew19@proton.me> | 2026-05-16 11:20:56 -0500 |
| commit | 25de000982a6281e3efdd8db896c731c333e7b48 (patch) | |
| tree | 405796886cd9cb75e84069e950d07c0c9ab4572e /libs/plugin_python/tests/runner/test_diagnose.cpp | |
| parent | 089542fa4dc43a59a08bdab06a96d399fbf6c53b (diff) | |
bg3: tolerate dangling Wine-prefix symlinks in metadata dirs
When the BG3 metadata path (e.g. AppData/Local/Larian Studios) is a
symlink left over from a previous prefix setup that points at a Steam
compatdata path which no longer resolves, pathlib's
mkdir(parents=True, exist_ok=True) raises FileExistsError — exist_ok
only suppresses the error when the path is an actual directory, and a
dangling symlink fails is_dir(). The launch crashed in
bg3_file_mapper.create_mapping before any mods were deployed.
Walk the path top-down on FileExistsError. For each component that's a
dangling symlink, resolve its target via os.path.realpath and create
the directory there so the symlink becomes valid and the original
mkdir succeeds. Cross-prefix sharing (the reason these symlinks exist)
is preserved.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'libs/plugin_python/tests/runner/test_diagnose.cpp')
0 files changed, 0 insertions, 0 deletions
