diff --git a/tools/asset_pipeline/customiser_setup.py b/tools/asset_pipeline/customiser_setup.py index 518ddbb0..9de21255 100644 --- a/tools/asset_pipeline/customiser_setup.py +++ b/tools/asset_pipeline/customiser_setup.py @@ -174,8 +174,11 @@ def install(iso, base, game_exe, report, refresh=False): if not selected.is_file():raise RuntimeError('Select an existing Skate 3 Xbox 360 ISO') source = Path(temp)/'disc' extractor = core.dependency(base/'tools', 'extract-xiso', core.XISO_URL, core.XISO_SHA, report) - with (Path(temp)/'extract.log').open('w') as log: - core.run([extractor, '-x', selected, '-d', source], log, report) + # Keep the log outside the temporary source directory so a failed + # extraction does not delete the file named in the error message. + base.mkdir(parents=True, exist_ok=True) + with (base/'extract.log').open('w', encoding='utf-8') as log: + core.run([extractor, '-x', '-d', source, selected], log, report) else: source = source_directory(selected, require_core=not refresh) stage = core._install(iso, base, game_exe, report, game_root=source, refresh=refresh,