feedback7 G-TOOLS: build-data --refresh fails instead of falling back to an old cache (PR #350 by @siruimei07)
Applied as-is. When --refresh is set, a download that still fails after four attempts throws instead of returning the older cached file, so one build cannot mix a new table with an old one. --offline and a warm cache without --refresh are unchanged. Files already written to the cache stay; generated data/ and the previous report are left in place. Tests: node --test test/build-data-refresh.test.js — 11 pass, 0 fail.
This commit is contained in:
1 parent
5662b7ef65
commit
063408e47b
3 files changed
+162
-5
No files matched your search
+6
-3
@@ -12,7 +12,7 @@ downloads failed on this machine unless `--allow-shrink` (or `--prune`) is passe
|
||||
```
|
||||
node tools/build-data.mjs # build (downloads missing official files into .cache/gamedata/)
|
||||
node tools/build-data.mjs --offline # never download; fail if a cached file is missing
|
||||
node tools/build-data.mjs --refresh # re-download every official file
|
||||
node tools/build-data.mjs --refresh # re-download every official file; fail if any download fails
|
||||
node tools/build-data.mjs --no-research --out /tmp/x # research-free build (fallback defaults), other dir
|
||||
node tools/build-data.mjs --cache <dir> --report <file> # other cache dir / report file (tests, CI)
|
||||
node tools/build-data.mjs --force # write data/ even when integrity checks fail (debugging only)
|
||||
@@ -23,8 +23,11 @@ Unknown options or a missing option value are errors (exit code 2); `--refresh`
|
||||
- **Cache.** Official files live under `.cache/gamedata/<repo path>` (`excel/activity_table.json`,
|
||||
`levels/enemydata/enemy_database.json`, `levels/activities/act1autochess/level_*.json`, …) and are fetched from
|
||||
`https://raw.githubusercontent.com/Kengxxiao/ArknightsGameData/master/zh_CN/gamedata/<path>` when missing.
|
||||
Downloads are validated (must parse as JSON) and written atomically.
|
||||
- **Report.** Every run writes `.cache/build-data-report.json` (counts, byte sizes, warnings (each once), errors, `written`).
|
||||
Downloads are validated (must parse as JSON) and written atomically. With `--refresh`, a download that still fails
|
||||
after four attempts aborts the build (exit code 1), even if an older cached file exists. Generated files and the
|
||||
previous report remain untouched, including with `--force`; successfully downloaded cache entries are not rolled
|
||||
back. Retry `--refresh` to complete the refresh; cached files are not verified to share an upstream revision.
|
||||
- **Report.** A run that reaches integrity validation writes `.cache/build-data-report.json` (counts, byte sizes, warnings (each once), errors, `written`).
|
||||
Integrity errors (see §17) make the exit code 1 **and leave the previous output untouched** (unless `--force`);
|
||||
warnings never do. Each output file is written atomically (temp file + rename).
|
||||
- **Determinism.** Same inputs ⇒ byte-identical outputs (stable key order, no timestamps, no randomness).
|
||||
|
||||
Reference in new issue
Block a user