@rom-weaver/cli 0.12.2 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,6 +26,8 @@ _rom-weaver() {
26
26
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
27
27
  '(--no-color)--color[Keep colors even when output is piped]' \
28
28
  '(--color)--no-color[Turn colors off]' \
29
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
30
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
29
31
  '-h[Print help (see more with '\''--help'\'')]' \
30
32
  '--help[Print help (see more with '\''--help'\'')]' \
31
33
  '-V[Print version]' \
@@ -59,6 +61,8 @@ _arguments "${_arguments_options[@]}" : \
59
61
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
60
62
  '(--no-color)--color[Keep colors even when output is piped]' \
61
63
  '(--color)--no-color[Turn colors off]' \
64
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
65
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
62
66
  '-h[Print help (see more with '\''--help'\'')]' \
63
67
  '--help[Print help (see more with '\''--help'\'')]' \
64
68
  && ret=0
@@ -83,6 +87,8 @@ _arguments "${_arguments_options[@]}" : \
83
87
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
84
88
  '(--no-color)--color[Keep colors even when output is piped]' \
85
89
  '(--color)--no-color[Turn colors off]' \
90
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
91
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
86
92
  '-h[Print help (see more with '\''--help'\'')]' \
87
93
  '--help[Print help (see more with '\''--help'\'')]' \
88
94
  && ret=0
@@ -96,8 +102,9 @@ _arguments "${_arguments_options[@]}" : \
96
102
  '*--filter=[Extract only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
97
103
  '-o+[Directory to write the extracted files into]:DIR:_files' \
98
104
  '--output=[Directory to write the extracted files into]:DIR:_files' \
99
- '*--checksum=[Also hash every extracted file (repeatable, comma-separable)]:ALGO:_default' \
100
- '*--checksum-rom=[Like --checksum, but hash only the ROMs and skip sidecar files. Ignored when --checksum is also given]:ALGO:_default' \
105
+ '*--checksum=[Also hash every extracted file (repeatable, comma-separable)]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
106
+ '*--algo=[Also hash every extracted file (repeatable, comma-separable)]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
107
+ '(--checksum)*--checksum-rom=[Like --checksum, but hash only the ROMs and skip sidecar files. Cannot be combined with --checksum]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
101
108
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
102
109
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
103
110
  '(-v --verbose -q --quiet)--log-level=[How much rom-weaver logs to stderr. Separate from the normal output \[default\: off\]]:LOG_LEVEL:(off error warn info debug trace)' \
@@ -116,6 +123,8 @@ _arguments "${_arguments_options[@]}" : \
116
123
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
117
124
  '(--no-color)--color[Keep colors even when output is piped]' \
118
125
  '(--color)--no-color[Turn colors off]' \
126
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
127
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
119
128
  '-h[Print help (see more with '\''--help'\'')]' \
120
129
  '--help[Print help (see more with '\''--help'\'')]' \
121
130
  && ret=0
@@ -124,8 +133,9 @@ _arguments "${_arguments_options[@]}" : \
124
133
  _arguments "${_arguments_options[@]}" : \
125
134
  '-i+[File to hash. Use - to read from stdin]:INPUT:_files' \
126
135
  '--input=[File to hash. Use - to read from stdin]:INPUT:_files' \
127
- '*-a+[Which checksum to compute\: crc32, md5, sha1, sha256, blake3, crc32c, crc16, or adler32 (repeatable, comma-separable)]:ALGO:_default' \
128
- '*--algo=[Which checksum to compute\: crc32, md5, sha1, sha256, blake3, crc32c, crc16, or adler32 (repeatable, comma-separable)]:ALGO:_default' \
136
+ '*-a+[Which checksum to compute (repeatable, comma-separable)]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
137
+ '*--algo=[Which checksum to compute (repeatable, comma-separable)]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
138
+ '*--checksum=[Which checksum to compute (repeatable, comma-separable)]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
129
139
  '*-s+[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
130
140
  '*--select=[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
131
141
  '*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
@@ -148,6 +158,8 @@ _arguments "${_arguments_options[@]}" : \
148
158
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
149
159
  '(--no-color)--color[Keep colors even when output is piped]' \
150
160
  '(--color)--no-color[Turn colors off]' \
161
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
162
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
151
163
  '-h[Print help (see more with '\''--help'\'')]' \
152
164
  '--help[Print help (see more with '\''--help'\'')]' \
153
165
  && ret=0
@@ -162,7 +174,8 @@ _arguments "${_arguments_options[@]}" : \
162
174
  '*--select=[Pick which ROM to use when the archive holds more than one, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
163
175
  '*--sidecar-name=[Optional loose patch names to match against \`source\` without ingesting it. This keeps the browser'\''s sibling-sidecar lookup on the ingest command surface while reusing Rust'\''s matcher]:SIDECAR_NAMES:_default' \
164
176
  '--split-bin=[For a multi-track CD-format CHD, write one BIN per track (--split-bin) or one merged BIN (--split-bin false). Omit to be asked]::SPLIT_BIN:(true false)' \
165
- '*--checksum=[Which checksums to compute for each ROM found (repeatable, comma-separable) \[default\: crc32,md5,sha1\]]:ALGO:_default' \
177
+ '*--checksum=[Which checksums to compute for each ROM found (repeatable, comma-separable) \[default\: crc32,md5,sha1\]]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
178
+ '*--algo=[Which checksums to compute for each ROM found (repeatable, comma-separable) \[default\: crc32,md5,sha1\]]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
166
179
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
167
180
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
168
181
  '(-v --verbose -q --quiet)--log-level=[How much rom-weaver logs to stderr. Separate from the normal output \[default\: off\]]:LOG_LEVEL:(off error warn info debug trace)' \
@@ -179,6 +192,8 @@ _arguments "${_arguments_options[@]}" : \
179
192
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
180
193
  '(--no-color)--color[Keep colors even when output is piped]' \
181
194
  '(--color)--no-color[Turn colors off]' \
195
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
196
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
182
197
  '-h[Print help (see more with '\''--help'\'')]' \
183
198
  '--help[Print help (see more with '\''--help'\'')]' \
184
199
  && ret=0
@@ -187,15 +202,18 @@ _arguments "${_arguments_options[@]}" : \
187
202
  _arguments "${_arguments_options[@]}" : \
188
203
  '*-i+[File to put in the archive; repeat for each one. For a disc image, pass the .cue or .gdi alone and its tracks come along]:INPUT:_files' \
189
204
  '*--input=[File to put in the archive; repeat for each one. For a disc image, pass the .cue or .gdi alone and its tracks come along]:INPUT:_files' \
190
- '-f+[Output format, such as zip, 7z, chd, rvz, or z3ds \[default\: from the --output extension\]]:FORMAT:_default' \
191
- '--format=[Output format, such as zip, 7z, chd, rvz, or z3ds \[default\: from the --output extension\]]:FORMAT:_default' \
205
+ '-f+[Output format, such as zip, 7z, chd, rvz, or z3ds \[default\: from the --output extension\]]:FORMAT:(zip 7z chd rvz z3ds)' \
206
+ '--format=[Output format, such as zip, 7z, chd, rvz, or z3ds \[default\: from the --output extension\]]:FORMAT:(zip 7z chd rvz z3ds)' \
192
207
  '-o+[Where to write the archive]:PATH:_files' \
193
208
  '--output=[Where to write the archive]:PATH:_files' \
194
- '*--codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:CODEC:_default' \
209
+ '*--codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:CODEC:(store deflate zstd lzma lzma2 zlib huff flac cdzs cdlz cdzl cdfl avhuff)' \
195
210
  '--level=[How hard to compress\: min, very-low, low, medium, high, very-high, or max]:LEVEL:(min very-low low medium high very-high max)' \
196
211
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
197
212
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
198
213
  '(-v --verbose -q --quiet)--log-level=[How much rom-weaver logs to stderr. Separate from the normal output \[default\: off\]]:LOG_LEVEL:(off error warn info debug trace)' \
214
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
215
+ '-n[Print the plan (inputs, output, format, codec, level, threads) and stop without writing]' \
216
+ '--dry-run[Print the plan (inputs, output, format, codec, level, threads) and stop without writing]' \
199
217
  '--json[Print one JSON object per line instead of human-readable output]' \
200
218
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
201
219
  '(--progress)--no-progress[Hide progress]' \
@@ -206,6 +224,8 @@ _arguments "${_arguments_options[@]}" : \
206
224
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
207
225
  '(--no-color)--color[Keep colors even when output is piped]' \
208
226
  '(--color)--no-color[Turn colors off]' \
227
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
228
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
209
229
  '-h[Print help (see more with '\''--help'\'')]' \
210
230
  '--help[Print help (see more with '\''--help'\'')]' \
211
231
  && ret=0
@@ -218,6 +238,7 @@ _arguments "${_arguments_options[@]}" : \
218
238
  '(--in-place)--output=[Where to write the trimmed file. Only valid with a single trimmable input]:OUTPUT:_files' \
219
239
  '-e+[Save next to each original under this extension. {ext} stands for the original one, as in trim.{ext}]:EXTENSION:_default' \
220
240
  '--extension=[Save next to each original under this extension. {ext} stands for the original one, as in trim.{ext}]:EXTENSION:_default' \
241
+ '*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
221
242
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
222
243
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
223
244
  '(-v --verbose -q --quiet)--log-level=[How much rom-weaver logs to stderr. Separate from the normal output \[default\: off\]]:LOG_LEVEL:(off error warn info debug trace)' \
@@ -232,6 +253,7 @@ _arguments "${_arguments_options[@]}" : \
232
253
  '--no-extract[Do not look inside archives; trim only the files named directly]' \
233
254
  '--revert-marker[Add a small footer recording what was cut, so --revert can restore the original exactly]' \
234
255
  '--reversible[Add a small footer recording what was cut, so --revert can restore the original exactly]' \
256
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
235
257
  '--json[Print one JSON object per line instead of human-readable output]' \
236
258
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
237
259
  '(--progress)--no-progress[Hide progress]' \
@@ -242,6 +264,8 @@ _arguments "${_arguments_options[@]}" : \
242
264
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
243
265
  '(--no-color)--color[Keep colors even when output is piped]' \
244
266
  '(--color)--no-color[Turn colors off]' \
267
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
268
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
245
269
  '-h[Print help (see more with '\''--help'\'')]' \
246
270
  '--help[Print help (see more with '\''--help'\'')]' \
247
271
  && ret=0
@@ -259,6 +283,8 @@ _arguments "${_arguments_options[@]}" : \
259
283
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
260
284
  '(--no-color)--color[Keep colors even when output is piped]' \
261
285
  '(--color)--no-color[Turn colors off]' \
286
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
287
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
262
288
  '-h[Print help]' \
263
289
  '--help[Print help]' \
264
290
  ":: :_rom-weaver__subcmd__patch_commands" \
@@ -285,9 +311,12 @@ _arguments "${_arguments_options[@]}" : \
285
311
  '--bundle=[Follow a rom-weaver-bundle.json recipe\: a file path, or an http(s) URL]:BUNDLE:_files' \
286
312
  '*--with=[Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)]:GLOB:_default' \
287
313
  '*--without=[Turn off a bundle patch, matched by name or file name (repeatable)]:GLOB:_default' \
288
- '--compress-format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:_default' \
289
- '*--compress-codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:COMPRESS_CODEC:_default' \
314
+ '--compress-format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
315
+ '--format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
316
+ '*--compress-codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:COMPRESS_CODEC:(store deflate zstd lzma lzma2 zlib huff flac cdzs cdlz cdzl cdfl avhuff)' \
317
+ '*--codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:COMPRESS_CODEC:(store deflate zstd lzma lzma2 zlib huff flac cdzs cdlz cdzl cdfl avhuff)' \
290
318
  '--compress-level=[How hard to compress\: min, very-low, low, medium, high, very-high, or max \[default\: max\]]:COMPRESS_LEVEL:(min very-low low medium high very-high max)' \
319
+ '--level=[How hard to compress\: min, very-low, low, medium, high, very-high, or max \[default\: max\]]:COMPRESS_LEVEL:(min very-low low medium high very-high max)' \
291
320
  '*--assume-in=[Take this checksum on trust instead of reading the ROM to compute it, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
292
321
  '*--expect-in=[Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
293
322
  '*--patch-header=[Whether a patch applies to the ROM with or without its copier header\: auto, keep, or strip \[default\: auto\]]:PATCH_HEADER:(keep strip auto)' \
@@ -305,9 +334,13 @@ _arguments "${_arguments_options[@]}" : \
305
334
  '--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
306
335
  '--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
307
336
  '--no-compress[Write a plain ROM instead of compressing the result]' \
337
+ '--raw[Write a plain ROM instead of compressing the result]' \
308
338
  '--repair-checksum[Recompute the ROM'\''s internal header checksum afterwards, so the console does not reject it (SNES, NES, GB, GBA, Mega Drive, SMS, N64, NDS)]' \
309
339
  '--ignore-checksum-validation[Apply the patch even when its own checksums do not match. Can produce a broken ROM]' \
310
340
  '--tui[Ask for each patch'\''s name, version, and author, then apply and write a bundle. Needs a terminal]' \
341
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
342
+ '-n[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
343
+ '--dry-run[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
311
344
  '--json[Print one JSON object per line instead of human-readable output]' \
312
345
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
313
346
  '(--progress)--no-progress[Hide progress]' \
@@ -318,6 +351,8 @@ _arguments "${_arguments_options[@]}" : \
318
351
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
319
352
  '(--no-color)--color[Keep colors even when output is piped]' \
320
353
  '(--color)--no-color[Turn colors off]' \
354
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
355
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
321
356
  '-h[Print help (see more with '\''--help'\'')]' \
322
357
  '--help[Print help (see more with '\''--help'\'')]' \
323
358
  && ret=0
@@ -336,9 +371,12 @@ _arguments "${_arguments_options[@]}" : \
336
371
  '--bundle=[Follow a rom-weaver-bundle.json recipe\: a file path, or an http(s) URL]:BUNDLE:_files' \
337
372
  '*--with=[Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)]:GLOB:_default' \
338
373
  '*--without=[Turn off a bundle patch, matched by name or file name (repeatable)]:GLOB:_default' \
339
- '--compress-format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:_default' \
340
- '*--compress-codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:COMPRESS_CODEC:_default' \
374
+ '--compress-format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
375
+ '--format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
376
+ '*--compress-codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:COMPRESS_CODEC:(store deflate zstd lzma lzma2 zlib huff flac cdzs cdlz cdzl cdfl avhuff)' \
377
+ '*--codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:COMPRESS_CODEC:(store deflate zstd lzma lzma2 zlib huff flac cdzs cdlz cdzl cdfl avhuff)' \
341
378
  '--compress-level=[How hard to compress\: min, very-low, low, medium, high, very-high, or max \[default\: max\]]:COMPRESS_LEVEL:(min very-low low medium high very-high max)' \
379
+ '--level=[How hard to compress\: min, very-low, low, medium, high, very-high, or max \[default\: max\]]:COMPRESS_LEVEL:(min very-low low medium high very-high max)' \
342
380
  '*--assume-in=[Take this checksum on trust instead of reading the ROM to compute it, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
343
381
  '*--expect-in=[Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
344
382
  '*--patch-header=[Whether a patch applies to the ROM with or without its copier header\: auto, keep, or strip \[default\: auto\]]:PATCH_HEADER:(keep strip auto)' \
@@ -356,9 +394,13 @@ _arguments "${_arguments_options[@]}" : \
356
394
  '--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
357
395
  '--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
358
396
  '--no-compress[Write a plain ROM instead of compressing the result]' \
397
+ '--raw[Write a plain ROM instead of compressing the result]' \
359
398
  '--repair-checksum[Recompute the ROM'\''s internal header checksum afterwards, so the console does not reject it (SNES, NES, GB, GBA, Mega Drive, SMS, N64, NDS)]' \
360
399
  '--ignore-checksum-validation[Apply the patch even when its own checksums do not match. Can produce a broken ROM]' \
361
400
  '--tui[Ask for each patch'\''s name, version, and author, then apply and write a bundle. Needs a terminal]' \
401
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
402
+ '-n[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
403
+ '--dry-run[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
362
404
  '--json[Print one JSON object per line instead of human-readable output]' \
363
405
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
364
406
  '(--progress)--no-progress[Hide progress]' \
@@ -369,6 +411,8 @@ _arguments "${_arguments_options[@]}" : \
369
411
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
370
412
  '(--no-color)--color[Keep colors even when output is piped]' \
371
413
  '(--color)--no-color[Turn colors off]' \
414
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
415
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
372
416
  '-h[Print help (see more with '\''--help'\'')]' \
373
417
  '--help[Print help (see more with '\''--help'\'')]' \
374
418
  && ret=0
@@ -406,6 +450,8 @@ _arguments "${_arguments_options[@]}" : \
406
450
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
407
451
  '(--no-color)--color[Keep colors even when output is piped]' \
408
452
  '(--color)--no-color[Turn colors off]' \
453
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
454
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
409
455
  '-h[Print help (see more with '\''--help'\'')]' \
410
456
  '--help[Print help (see more with '\''--help'\'')]' \
411
457
  && ret=0
@@ -437,6 +483,7 @@ _arguments "${_arguments_options[@]}" : \
437
483
  '--ignore-checksum-validation[Write the patch even when the format'\''s own consistency checks fail, and leave its checksums out]' \
438
484
  '--checksum-name[Put the original ROM'\''s crc32 in the patch file name, as \[crc32\:HEX\]]' \
439
485
  '--solid-extended[SOLID patches only\: use the extended header even with none of the extended fields filled in]' \
486
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
440
487
  '--json[Print one JSON object per line instead of human-readable output]' \
441
488
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
442
489
  '(--progress)--no-progress[Hide progress]' \
@@ -447,6 +494,8 @@ _arguments "${_arguments_options[@]}" : \
447
494
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
448
495
  '(--no-color)--color[Keep colors even when output is piped]' \
449
496
  '(--color)--no-color[Turn colors off]' \
497
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
498
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
450
499
  '-h[Print help (see more with '\''--help'\'')]' \
451
500
  '--help[Print help (see more with '\''--help'\'')]' \
452
501
  && ret=0
@@ -500,6 +549,8 @@ _arguments "${_arguments_options[@]}" : \
500
549
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
501
550
  '(--no-color)--color[Keep colors even when output is piped]' \
502
551
  '(--color)--no-color[Turn colors off]' \
552
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
553
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
503
554
  '-h[Print help]' \
504
555
  '--help[Print help]' \
505
556
  ":: :_rom-weaver__subcmd__bundle_commands" \
@@ -539,13 +590,15 @@ _arguments "${_arguments_options[@]}" : \
539
590
  '--output=[Where to write the bundle. Name it rom-weaver-bundle.json, or add .gz or .zst to compress it]:OUTPUT:_files' \
540
591
  '--bundle=[Also pack the bundle and its ROM and patches into one shareable archive, such as release.zip]:BUNDLE:_files' \
541
592
  '--bundle-rom=[Pack this file into --bundle as the ROM, while --input supplies the checksums and metadata]:BUNDLE_ROM:_files' \
542
- '*--checksum=[Which checksums to record for the ROM (repeatable) \[default\: crc32,md5,sha1\]]:CHECKSUM:_default' \
593
+ '*--checksum=[Which checksums to record for the ROM (repeatable, comma-separable) \[default\: crc32,md5,sha1\]]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
594
+ '*--algo=[Which checksums to record for the ROM (repeatable, comma-separable) \[default\: crc32,md5,sha1\]]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
543
595
  '--from=[Build the bundle from a hand-written rom-weaver-bundle.json instead of flags. Use - to read it from stdin]:FILE:_files' \
544
596
  '--schema-ref=[Record this \$schema URL in the bundle so editors can validate it. Left out unless asked for]:URL:_default' \
545
597
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
546
598
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
547
599
  '(-v --verbose -q --quiet)--log-level=[How much rom-weaver logs to stderr. Separate from the normal output \[default\: off\]]:LOG_LEVEL:(off error warn info debug trace)' \
548
600
  '--no-bundle-rom[Keep the ROM out of --bundle and record only its checksums, so whoever applies the bundle brings their own copy]' \
601
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
549
602
  '--json[Print one JSON object per line instead of human-readable output]' \
550
603
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
551
604
  '(--progress)--no-progress[Hide progress]' \
@@ -556,6 +609,8 @@ _arguments "${_arguments_options[@]}" : \
556
609
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
557
610
  '(--no-color)--color[Keep colors even when output is piped]' \
558
611
  '(--color)--no-color[Turn colors off]' \
612
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
613
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
559
614
  '-h[Print help (see more with '\''--help'\'')]' \
560
615
  '--help[Print help (see more with '\''--help'\'')]' \
561
616
  && ret=0
@@ -583,6 +638,8 @@ _arguments "${_arguments_options[@]}" : \
583
638
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
584
639
  '(--no-color)--color[Keep colors even when output is piped]' \
585
640
  '(--color)--no-color[Turn colors off]' \
641
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
642
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
586
643
  '-h[Print help (see more with '\''--help'\'')]' \
587
644
  '--help[Print help (see more with '\''--help'\'')]' \
588
645
  && ret=0
@@ -600,6 +657,8 @@ _arguments "${_arguments_options[@]}" : \
600
657
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
601
658
  '(--no-color)--color[Keep colors even when output is piped]' \
602
659
  '(--color)--no-color[Turn colors off]' \
660
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
661
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
603
662
  '-h[Print help (see more with '\''--help'\'')]' \
604
663
  '--help[Print help (see more with '\''--help'\'')]' \
605
664
  && ret=0
@@ -653,6 +712,8 @@ _arguments "${_arguments_options[@]}" : \
653
712
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
654
713
  '(--no-color)--color[Keep colors even when output is piped]' \
655
714
  '(--color)--no-color[Turn colors off]' \
715
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
716
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
656
717
  '-h[Print help]' \
657
718
  '--help[Print help]' \
658
719
  ":: :_rom-weaver__subcmd__tools_commands" \
@@ -683,6 +744,8 @@ _arguments "${_arguments_options[@]}" : \
683
744
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
684
745
  '(--no-color)--color[Keep colors even when output is piped]' \
685
746
  '(--color)--no-color[Turn colors off]' \
747
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
748
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
686
749
  '-h[Print help (see more with '\''--help'\'')]' \
687
750
  '--help[Print help (see more with '\''--help'\'')]' \
688
751
  && ret=0
@@ -734,6 +797,8 @@ _arguments "${_arguments_options[@]}" : \
734
797
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
735
798
  '(--no-color)--color[Keep colors even when output is piped]' \
736
799
  '(--color)--no-color[Turn colors off]' \
800
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
801
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
737
802
  '-h[Print help]' \
738
803
  '--help[Print help]' \
739
804
  && ret=0
@@ -752,9 +817,12 @@ _arguments "${_arguments_options[@]}" : \
752
817
  '--bundle=[Follow a rom-weaver-bundle.json recipe\: a file path, or an http(s) URL]:BUNDLE:_files' \
753
818
  '*--with=[Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)]:GLOB:_default' \
754
819
  '*--without=[Turn off a bundle patch, matched by name or file name (repeatable)]:GLOB:_default' \
755
- '--compress-format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:_default' \
756
- '*--compress-codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:COMPRESS_CODEC:_default' \
820
+ '--compress-format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
821
+ '--format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
822
+ '*--compress-codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:COMPRESS_CODEC:(store deflate zstd lzma lzma2 zlib huff flac cdzs cdlz cdzl cdfl avhuff)' \
823
+ '*--codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:COMPRESS_CODEC:(store deflate zstd lzma lzma2 zlib huff flac cdzs cdlz cdzl cdfl avhuff)' \
757
824
  '--compress-level=[How hard to compress\: min, very-low, low, medium, high, very-high, or max \[default\: max\]]:COMPRESS_LEVEL:(min very-low low medium high very-high max)' \
825
+ '--level=[How hard to compress\: min, very-low, low, medium, high, very-high, or max \[default\: max\]]:COMPRESS_LEVEL:(min very-low low medium high very-high max)' \
758
826
  '*--assume-in=[Take this checksum on trust instead of reading the ROM to compute it, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
759
827
  '*--expect-in=[Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
760
828
  '*--patch-header=[Whether a patch applies to the ROM with or without its copier header\: auto, keep, or strip \[default\: auto\]]:PATCH_HEADER:(keep strip auto)' \
@@ -772,9 +840,13 @@ _arguments "${_arguments_options[@]}" : \
772
840
  '--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
773
841
  '--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
774
842
  '--no-compress[Write a plain ROM instead of compressing the result]' \
843
+ '--raw[Write a plain ROM instead of compressing the result]' \
775
844
  '--repair-checksum[Recompute the ROM'\''s internal header checksum afterwards, so the console does not reject it (SNES, NES, GB, GBA, Mega Drive, SMS, N64, NDS)]' \
776
845
  '--ignore-checksum-validation[Apply the patch even when its own checksums do not match. Can produce a broken ROM]' \
777
846
  '--tui[Ask for each patch'\''s name, version, and author, then apply and write a bundle. Needs a terminal]' \
847
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
848
+ '-n[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
849
+ '--dry-run[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
778
850
  '--json[Print one JSON object per line instead of human-readable output]' \
779
851
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
780
852
  '(--progress)--no-progress[Hide progress]' \
@@ -785,6 +857,8 @@ _arguments "${_arguments_options[@]}" : \
785
857
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
786
858
  '(--no-color)--color[Keep colors even when output is piped]' \
787
859
  '(--color)--no-color[Turn colors off]' \
860
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
861
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
788
862
  '-h[Print help (see more with '\''--help'\'')]' \
789
863
  '--help[Print help (see more with '\''--help'\'')]' \
790
864
  && ret=0
@@ -802,11 +876,32 @@ _arguments "${_arguments_options[@]}" : \
802
876
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
803
877
  '(--no-color)--color[Keep colors even when output is piped]' \
804
878
  '(--color)--no-color[Turn colors off]' \
879
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
880
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
805
881
  '-h[Print help (see more with '\''--help'\'')]' \
806
882
  '--help[Print help (see more with '\''--help'\'')]' \
807
883
  ':shell -- Shell to print completions for:(bash elvish fish powershell zsh)' \
808
884
  && ret=0
809
885
  ;;
886
+ (formats)
887
+ _arguments "${_arguments_options[@]}" : \
888
+ '(-v --verbose -q --quiet)--log-level=[How much rom-weaver logs to stderr. Separate from the normal output \[default\: off\]]:LOG_LEVEL:(off error warn info debug trace)' \
889
+ '--json[Print one JSON object per line instead of human-readable output]' \
890
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
891
+ '(--progress)--no-progress[Hide progress]' \
892
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
893
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
894
+ '(--log-level -v --verbose)-q[Log errors only]' \
895
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
896
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
897
+ '(--no-color)--color[Keep colors even when output is piped]' \
898
+ '(--color)--no-color[Turn colors off]' \
899
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
900
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
901
+ '-h[Print help (see more with '\''--help'\'')]' \
902
+ '--help[Print help (see more with '\''--help'\'')]' \
903
+ && ret=0
904
+ ;;
810
905
  (help)
811
906
  _arguments "${_arguments_options[@]}" : \
812
907
  ":: :_rom-weaver__subcmd__help_commands" \
@@ -931,6 +1026,10 @@ _arguments "${_arguments_options[@]}" : \
931
1026
  _arguments "${_arguments_options[@]}" : \
932
1027
  && ret=0
933
1028
  ;;
1029
+ (formats)
1030
+ _arguments "${_arguments_options[@]}" : \
1031
+ && ret=0
1032
+ ;;
934
1033
  (help)
935
1034
  _arguments "${_arguments_options[@]}" : \
936
1035
  && ret=0
@@ -960,6 +1059,7 @@ _rom-weaver_commands() {
960
1059
  'plan-extract-batch:Plan a memory-/thread-aware concurrent extraction schedule from per-job source sizes (no I/O)' \
961
1060
  'weave:Apply one or more patches to a ROM, in order (same as \`patch apply\`)' \
962
1061
  'completions:Print a tab-completion script for your shell' \
1062
+ 'formats:List the formats, codecs, and checksum algorithms this build supports' \
963
1063
  'help:Print this message or the help of the given subcommand(s)' \
964
1064
  )
965
1065
  _describe -t commands 'rom-weaver commands' commands "$@"
@@ -1039,6 +1139,11 @@ _rom-weaver__subcmd__extract_commands() {
1039
1139
  local commands; commands=()
1040
1140
  _describe -t commands 'rom-weaver extract commands' commands "$@"
1041
1141
  }
1142
+ (( $+functions[_rom-weaver__subcmd__formats_commands] )) ||
1143
+ _rom-weaver__subcmd__formats_commands() {
1144
+ local commands; commands=()
1145
+ _describe -t commands 'rom-weaver formats commands' commands "$@"
1146
+ }
1042
1147
  (( $+functions[_rom-weaver__subcmd__help_commands] )) ||
1043
1148
  _rom-weaver__subcmd__help_commands() {
1044
1149
  local commands; commands=(
@@ -1054,6 +1159,7 @@ _rom-weaver__subcmd__help_commands() {
1054
1159
  'plan-extract-batch:Plan a memory-/thread-aware concurrent extraction schedule from per-job source sizes (no I/O)' \
1055
1160
  'weave:Apply one or more patches to a ROM, in order (same as \`patch apply\`)' \
1056
1161
  'completions:Print a tab-completion script for your shell' \
1162
+ 'formats:List the formats, codecs, and checksum algorithms this build supports' \
1057
1163
  'help:Print this message or the help of the given subcommand(s)' \
1058
1164
  )
1059
1165
  _describe -t commands 'rom-weaver help commands' commands "$@"
@@ -1102,6 +1208,11 @@ _rom-weaver__subcmd__help__subcmd__extract_commands() {
1102
1208
  local commands; commands=()
1103
1209
  _describe -t commands 'rom-weaver help extract commands' commands "$@"
1104
1210
  }
1211
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__formats_commands] )) ||
1212
+ _rom-weaver__subcmd__help__subcmd__formats_commands() {
1213
+ local commands; commands=()
1214
+ _describe -t commands 'rom-weaver help formats commands' commands "$@"
1215
+ }
1105
1216
  (( $+functions[_rom-weaver__subcmd__help__subcmd__help_commands] )) ||
1106
1217
  _rom-weaver__subcmd__help__subcmd__help_commands() {
1107
1218
  local commands; commands=()