mirror of
https://github.com/SK8-ENGINE/skate-3-rust-engine.git
synced 2026-10-26 19:47:44 +00:00
Setup: pass extract-xiso options before the image path
extract-xiso stops parsing options at the first image path, so `-x <iso> -d <dir>` extracted into the working directory and then failed on "-d" as a second image (exit 1 -> "Conversion failed"). Use `-x -d <dir> <iso>` in both call sites. See docs/hails-additions/01-iso-extraction.md.
This commit is contained in:
3 files changed
+60
-2
No files matched your search
@@ -0,0 +1,56 @@
|
||||
# 1. ISO extraction argument order
|
||||
|
||||
## Problem
|
||||
|
||||
Selecting a Skate 3 ISO in setup failed with `Conversion failed. See ...\extract.log`
|
||||
right after "Extracting your ISO". Setup deletes its temporary directory on
|
||||
failure, so the log named in the message no longer exists.
|
||||
|
||||
## Root cause
|
||||
|
||||
`extract-xiso` (the pinned `build-202505152050` Windows release, v2.7.1) stops
|
||||
parsing options at the first image path. Setup called it as
|
||||
|
||||
```
|
||||
extract-xiso -x <iso> -d <dir>
|
||||
```
|
||||
|
||||
so `-d` and `<dir>` were treated as two more images to extract. The tool
|
||||
extracted the real ISO into the **current working directory** as
|
||||
`<iso name>\` (not the temporary directory), then failed on the "images":
|
||||
|
||||
```
|
||||
open error: -d No such file or directory
|
||||
```
|
||||
|
||||
and exited with code 1, which setup reports as a conversion failure. The
|
||||
extraction itself was complete: all 103 files and 6,404,940,920 bytes matched
|
||||
`extract-xiso -l`.
|
||||
|
||||
## Change
|
||||
|
||||
Pass options before the image, in both call sites:
|
||||
|
||||
- `tools/asset_pipeline/customiser_setup.py` (`install`, used by the setup GUI)
|
||||
- `tools/asset_pipeline/install.py` (`_install`)
|
||||
|
||||
```
|
||||
extract-xiso -x -d <dir> <iso>
|
||||
```
|
||||
|
||||
Note: `-d` does not create parent directories. Both call sites extract into a
|
||||
subdirectory of an existing temporary/work directory, so this holds.
|
||||
|
||||
## Verification
|
||||
|
||||
- Reproduced the failure by running the tool with the original argument order
|
||||
(stderr above, exit code 1, files written to the working directory).
|
||||
- With the new order: exit code 0, all 103 files in the target directory,
|
||||
byte total identical to the image listing, nothing written to the working
|
||||
directory.
|
||||
|
||||
## Notes for upstream
|
||||
|
||||
- Upstream PR #9 (Linux/macOS port) contains the same fix, credited there to
|
||||
PR #7 ("BSD getopt compatibility"). If #9 is merged first, this change is
|
||||
already covered.
|
||||
Reference in new issue
Block a user