@rom-weaver/cli 0.12.3 → 0.14.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.
Files changed (38) hide show
  1. package/README.md +38 -270
  2. package/docs/completions/_rom-weaver +878 -23
  3. package/docs/completions/rom-weaver.bash +1052 -53
  4. package/docs/completions/rom-weaver.elv +442 -12
  5. package/docs/completions/rom-weaver.fish +258 -41
  6. package/docs/completions/rom-weaver.ps1 +489 -12
  7. package/docs/man/rom-weaver-bundle-create.1 +75 -3
  8. package/docs/man/rom-weaver-bundle-parse.1 +4 -1
  9. package/docs/man/rom-weaver-bundle-schema.1 +4 -1
  10. package/docs/man/rom-weaver-bundle.1 +4 -1
  11. package/docs/man/rom-weaver-checksum.1 +28 -3
  12. package/docs/man/rom-weaver-completions.1 +4 -1
  13. package/docs/man/rom-weaver-compress.1 +58 -1
  14. package/docs/man/rom-weaver-extract.1 +49 -2
  15. package/docs/man/rom-weaver-formats.1 +66 -0
  16. package/docs/man/rom-weaver-identify-database-import-redump.1 +68 -0
  17. package/docs/man/rom-weaver-identify-database-install-all.1 +65 -0
  18. package/docs/man/rom-weaver-identify-database-install-group.1 +71 -0
  19. package/docs/man/rom-weaver-identify-database-install.1 +74 -0
  20. package/docs/man/rom-weaver-identify-database-list.1 +65 -0
  21. package/docs/man/rom-weaver-identify-database-path.1 +65 -0
  22. package/docs/man/rom-weaver-identify-database-remove.1 +68 -0
  23. package/docs/man/rom-weaver-identify-database-status.1 +65 -0
  24. package/docs/man/rom-weaver-identify-database-update.1 +71 -0
  25. package/docs/man/rom-weaver-identify-database.1 +90 -0
  26. package/docs/man/rom-weaver-identify.1 +123 -0
  27. package/docs/man/rom-weaver-patch-apply.1 +128 -68
  28. package/docs/man/rom-weaver-patch-create.1 +9 -3
  29. package/docs/man/rom-weaver-patch-validate.1 +4 -1
  30. package/docs/man/rom-weaver-patch.1 +4 -1
  31. package/docs/man/rom-weaver-probe.1 +4 -1
  32. package/docs/man/rom-weaver-tools-ppf-undo.1 +4 -1
  33. package/docs/man/rom-weaver-tools.1 +4 -1
  34. package/docs/man/rom-weaver-trim.1 +20 -1
  35. package/docs/man/rom-weaver-weave.1 +128 -68
  36. package/docs/man/rom-weaver.1 +11 -5
  37. package/package.json +14 -13
  38. package/docs/man/rom-weaver-ingest.1 +0 -98
@@ -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,21 +158,423 @@ _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
154
166
  ;;
167
+ (identify)
168
+ _arguments "${_arguments_options[@]}" : \
169
+ '-i+[ROM to identify. Use - to read from stdin]:INPUT:_files' \
170
+ '--input=[ROM to identify. Use - to read from stdin]:INPUT:_files' \
171
+ '*--hash=[Identify by a checksum instead of a file; accepts crc32/md5/sha1 hex (repeatable, one per algorithm)]:HEX:_default' \
172
+ '--size=[Exact byte size to pair with --hash, narrowing the lookup to records of that size]:BYTES:_default' \
173
+ '*-d+[RWFP1 identify pack, raw or Brotli, to search instead of the built-in data (repeatable)]:PACK:_files' \
174
+ '*--database=[RWFP1 identify pack, raw or Brotli, to search instead of the built-in data (repeatable)]:PACK:_files' \
175
+ '--system=[Search only this system'\''s pack. Takes a canonical platform name or a common alias (e.g. \`snes\`, \`psx\`)]:SYSTEM:_default' \
176
+ '--database-dir=[Directory of installed identify packs (*.pack plus optional catalog.json). Defaults to the per-user data directory]:DIR:_files' \
177
+ '*-s+[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
178
+ '*--select=[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
179
+ '*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
180
+ '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
181
+ '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
182
+ '(-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)' \
183
+ '--offline[Assert that identify performs no network access (it never does natively; this flag records the guarantee)]' \
184
+ '--exhaustive-database-search[Search every installed pack instead of only the packs the detected platform routes to]' \
185
+ '--no-extract[Do not look inside archives; identify the file itself]' \
186
+ '--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
187
+ '--no-trim-fix[Skip extra checksums for trimmed and untrimmed ROM forms]' \
188
+ '--json[Print one JSON object per line instead of human-readable output]' \
189
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
190
+ '(--progress)--no-progress[Hide progress]' \
191
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
192
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
193
+ '(--log-level -v --verbose)-q[Log errors only]' \
194
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
195
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
196
+ '(--no-color)--color[Keep colors even when output is piped]' \
197
+ '(--color)--no-color[Turn colors off]' \
198
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
199
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
200
+ '-h[Print help (see more with '\''--help'\'')]' \
201
+ '--help[Print help (see more with '\''--help'\'')]' \
202
+ ":: :_rom-weaver__subcmd__identify_commands" \
203
+ "*::: :->identify" \
204
+ && ret=0
205
+
206
+ case $state in
207
+ (identify)
208
+ words=($line[1] "${words[@]}")
209
+ (( CURRENT += 1 ))
210
+ curcontext="${curcontext%:*:*}:rom-weaver-identify-command-$line[1]:"
211
+ case $line[1] in
212
+ (database)
213
+ _arguments "${_arguments_options[@]}" : \
214
+ '(-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)' \
215
+ '--json[Print one JSON object per line instead of human-readable output]' \
216
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
217
+ '(--progress)--no-progress[Hide progress]' \
218
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
219
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
220
+ '(--log-level -v --verbose)-q[Log errors only]' \
221
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
222
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
223
+ '(--no-color)--color[Keep colors even when output is piped]' \
224
+ '(--color)--no-color[Turn colors off]' \
225
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
226
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
227
+ '-h[Print help]' \
228
+ '--help[Print help]' \
229
+ ":: :_rom-weaver__subcmd__identify__subcmd__database_commands" \
230
+ "*::: :->database" \
231
+ && ret=0
232
+
233
+ case $state in
234
+ (database)
235
+ words=($line[1] "${words[@]}")
236
+ (( CURRENT += 1 ))
237
+ curcontext="${curcontext%:*:*}:rom-weaver-identify-database-command-$line[1]:"
238
+ case $line[1] in
239
+ (list)
240
+ _arguments "${_arguments_options[@]}" : \
241
+ '--database-dir=[Identify database directory. Defaults to the per-user data directory]:DIR:_files' \
242
+ '(-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)' \
243
+ '--json[Print one JSON object per line instead of human-readable output]' \
244
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
245
+ '(--progress)--no-progress[Hide progress]' \
246
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
247
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
248
+ '(--log-level -v --verbose)-q[Log errors only]' \
249
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
250
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
251
+ '(--no-color)--color[Keep colors even when output is piped]' \
252
+ '(--color)--no-color[Turn colors off]' \
253
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
254
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
255
+ '-h[Print help]' \
256
+ '--help[Print help]' \
257
+ && ret=0
258
+ ;;
259
+ (status)
260
+ _arguments "${_arguments_options[@]}" : \
261
+ '--database-dir=[Identify database directory. Defaults to the per-user data directory]:DIR:_files' \
262
+ '(-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)' \
263
+ '--json[Print one JSON object per line instead of human-readable output]' \
264
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
265
+ '(--progress)--no-progress[Hide progress]' \
266
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
267
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
268
+ '(--log-level -v --verbose)-q[Log errors only]' \
269
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
270
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
271
+ '(--no-color)--color[Keep colors even when output is piped]' \
272
+ '(--color)--no-color[Turn colors off]' \
273
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
274
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
275
+ '-h[Print help]' \
276
+ '--help[Print help]' \
277
+ && ret=0
278
+ ;;
279
+ (path)
280
+ _arguments "${_arguments_options[@]}" : \
281
+ '--database-dir=[Identify database directory. Defaults to the per-user data directory]:DIR:_files' \
282
+ '(-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)' \
283
+ '--json[Print one JSON object per line instead of human-readable output]' \
284
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
285
+ '(--progress)--no-progress[Hide progress]' \
286
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
287
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
288
+ '(--log-level -v --verbose)-q[Log errors only]' \
289
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
290
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
291
+ '(--no-color)--color[Keep colors even when output is piped]' \
292
+ '(--color)--no-color[Turn colors off]' \
293
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
294
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
295
+ '-h[Print help]' \
296
+ '--help[Print help]' \
297
+ && ret=0
298
+ ;;
299
+ (remove)
300
+ _arguments "${_arguments_options[@]}" : \
301
+ '--database-dir=[Identify database directory. Defaults to the per-user data directory]:DIR:_files' \
302
+ '(-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)' \
303
+ '--json[Print one JSON object per line instead of human-readable output]' \
304
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
305
+ '(--progress)--no-progress[Hide progress]' \
306
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
307
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
308
+ '(--log-level -v --verbose)-q[Log errors only]' \
309
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
310
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
311
+ '(--no-color)--color[Keep colors even when output is piped]' \
312
+ '(--color)--no-color[Turn colors off]' \
313
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
314
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
315
+ '-h[Print help]' \
316
+ '--help[Print help]' \
317
+ ':system -- Canonical platform name or alias:_default' \
318
+ && ret=0
319
+ ;;
320
+ (import-redump)
321
+ _arguments "${_arguments_options[@]}" : \
322
+ '--database-dir=[Identify database directory. Defaults to the per-user data directory]:DIR:_files' \
323
+ '(-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)' \
324
+ '--json[Print one JSON object per line instead of human-readable output]' \
325
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
326
+ '(--progress)--no-progress[Hide progress]' \
327
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
328
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
329
+ '(--log-level -v --verbose)-q[Log errors only]' \
330
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
331
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
332
+ '(--no-color)--color[Keep colors even when output is piped]' \
333
+ '(--color)--no-color[Turn colors off]' \
334
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
335
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
336
+ '-h[Print help]' \
337
+ '--help[Print help]' \
338
+ ':input -- Local Redump DAT ZIP file to import:_files' \
339
+ && ret=0
340
+ ;;
341
+ (install-all)
342
+ _arguments "${_arguments_options[@]}" : \
343
+ '--database-dir=[Identify database directory. Defaults to the per-user data directory]:DIR:_files' \
344
+ '(-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)' \
345
+ '--json[Print one JSON object per line instead of human-readable output]' \
346
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
347
+ '(--progress)--no-progress[Hide progress]' \
348
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
349
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
350
+ '(--log-level -v --verbose)-q[Log errors only]' \
351
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
352
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
353
+ '(--no-color)--color[Keep colors even when output is piped]' \
354
+ '(--color)--no-color[Turn colors off]' \
355
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
356
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
357
+ '-h[Print help]' \
358
+ '--help[Print help]' \
359
+ && ret=0
360
+ ;;
361
+ (install-group)
362
+ _arguments "${_arguments_options[@]}" : \
363
+ '--from=[Local group archive; omit to download the archive for this version]:ARCHIVE:_files' \
364
+ '--database-dir=[Identify database directory. Defaults to the per-user data directory]:DIR:_files' \
365
+ '(-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)' \
366
+ '--json[Print one JSON object per line instead of human-readable output]' \
367
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
368
+ '(--progress)--no-progress[Hide progress]' \
369
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
370
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
371
+ '(--log-level -v --verbose)-q[Log errors only]' \
372
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
373
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
374
+ '(--no-color)--color[Keep colors even when output is piped]' \
375
+ '(--color)--no-color[Turn colors off]' \
376
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
377
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
378
+ '-h[Print help]' \
379
+ '--help[Print help]' \
380
+ ':group -- Optional identify pack group to install:_default' \
381
+ && ret=0
382
+ ;;
383
+ (install)
384
+ _arguments "${_arguments_options[@]}" : \
385
+ '--from=[Local Redump DAT ZIP file; omit to download from Redump]:ZIP:_files' \
386
+ '--database-dir=[Identify database directory. Defaults to the per-user data directory]:DIR:_files' \
387
+ '(-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)' \
388
+ '()--all[Install every platform in the dump]' \
389
+ '--json[Print one JSON object per line instead of human-readable output]' \
390
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
391
+ '(--progress)--no-progress[Hide progress]' \
392
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
393
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
394
+ '(--log-level -v --verbose)-q[Log errors only]' \
395
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
396
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
397
+ '(--no-color)--color[Keep colors even when output is piped]' \
398
+ '(--color)--no-color[Turn colors off]' \
399
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
400
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
401
+ '-h[Print help]' \
402
+ '--help[Print help]' \
403
+ '::system -- Canonical platform name or alias:_default' \
404
+ && ret=0
405
+ ;;
406
+ (update)
407
+ _arguments "${_arguments_options[@]}" : \
408
+ '--from=[Local Redump DAT ZIP file; omit to download from Redump]:ZIP:_files' \
409
+ '--database-dir=[Identify database directory. Defaults to the per-user data directory]:DIR:_files' \
410
+ '(-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)' \
411
+ '--json[Print one JSON object per line instead of human-readable output]' \
412
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
413
+ '(--progress)--no-progress[Hide progress]' \
414
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
415
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
416
+ '(--log-level -v --verbose)-q[Log errors only]' \
417
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
418
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
419
+ '(--no-color)--color[Keep colors even when output is piped]' \
420
+ '(--color)--no-color[Turn colors off]' \
421
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
422
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
423
+ '-h[Print help]' \
424
+ '--help[Print help]' \
425
+ '::system -- Canonical platform name or alias; omit to update every installed pack:_default' \
426
+ && ret=0
427
+ ;;
428
+ (help)
429
+ _arguments "${_arguments_options[@]}" : \
430
+ ":: :_rom-weaver__subcmd__identify__subcmd__database__subcmd__help_commands" \
431
+ "*::: :->help" \
432
+ && ret=0
433
+
434
+ case $state in
435
+ (help)
436
+ words=($line[1] "${words[@]}")
437
+ (( CURRENT += 1 ))
438
+ curcontext="${curcontext%:*:*}:rom-weaver-identify-database-help-command-$line[1]:"
439
+ case $line[1] in
440
+ (list)
441
+ _arguments "${_arguments_options[@]}" : \
442
+ && ret=0
443
+ ;;
444
+ (status)
445
+ _arguments "${_arguments_options[@]}" : \
446
+ && ret=0
447
+ ;;
448
+ (path)
449
+ _arguments "${_arguments_options[@]}" : \
450
+ && ret=0
451
+ ;;
452
+ (remove)
453
+ _arguments "${_arguments_options[@]}" : \
454
+ && ret=0
455
+ ;;
456
+ (import-redump)
457
+ _arguments "${_arguments_options[@]}" : \
458
+ && ret=0
459
+ ;;
460
+ (install-all)
461
+ _arguments "${_arguments_options[@]}" : \
462
+ && ret=0
463
+ ;;
464
+ (install-group)
465
+ _arguments "${_arguments_options[@]}" : \
466
+ && ret=0
467
+ ;;
468
+ (install)
469
+ _arguments "${_arguments_options[@]}" : \
470
+ && ret=0
471
+ ;;
472
+ (update)
473
+ _arguments "${_arguments_options[@]}" : \
474
+ && ret=0
475
+ ;;
476
+ (help)
477
+ _arguments "${_arguments_options[@]}" : \
478
+ && ret=0
479
+ ;;
480
+ esac
481
+ ;;
482
+ esac
483
+ ;;
484
+ esac
485
+ ;;
486
+ esac
487
+ ;;
488
+ (help)
489
+ _arguments "${_arguments_options[@]}" : \
490
+ ":: :_rom-weaver__subcmd__identify__subcmd__help_commands" \
491
+ "*::: :->help" \
492
+ && ret=0
493
+
494
+ case $state in
495
+ (help)
496
+ words=($line[1] "${words[@]}")
497
+ (( CURRENT += 1 ))
498
+ curcontext="${curcontext%:*:*}:rom-weaver-identify-help-command-$line[1]:"
499
+ case $line[1] in
500
+ (database)
501
+ _arguments "${_arguments_options[@]}" : \
502
+ ":: :_rom-weaver__subcmd__identify__subcmd__help__subcmd__database_commands" \
503
+ "*::: :->database" \
504
+ && ret=0
505
+
506
+ case $state in
507
+ (database)
508
+ words=($line[1] "${words[@]}")
509
+ (( CURRENT += 1 ))
510
+ curcontext="${curcontext%:*:*}:rom-weaver-identify-help-database-command-$line[1]:"
511
+ case $line[1] in
512
+ (list)
513
+ _arguments "${_arguments_options[@]}" : \
514
+ && ret=0
515
+ ;;
516
+ (status)
517
+ _arguments "${_arguments_options[@]}" : \
518
+ && ret=0
519
+ ;;
520
+ (path)
521
+ _arguments "${_arguments_options[@]}" : \
522
+ && ret=0
523
+ ;;
524
+ (remove)
525
+ _arguments "${_arguments_options[@]}" : \
526
+ && ret=0
527
+ ;;
528
+ (import-redump)
529
+ _arguments "${_arguments_options[@]}" : \
530
+ && ret=0
531
+ ;;
532
+ (install-all)
533
+ _arguments "${_arguments_options[@]}" : \
534
+ && ret=0
535
+ ;;
536
+ (install-group)
537
+ _arguments "${_arguments_options[@]}" : \
538
+ && ret=0
539
+ ;;
540
+ (install)
541
+ _arguments "${_arguments_options[@]}" : \
542
+ && ret=0
543
+ ;;
544
+ (update)
545
+ _arguments "${_arguments_options[@]}" : \
546
+ && ret=0
547
+ ;;
548
+ esac
549
+ ;;
550
+ esac
551
+ ;;
552
+ (help)
553
+ _arguments "${_arguments_options[@]}" : \
554
+ && ret=0
555
+ ;;
556
+ esac
557
+ ;;
558
+ esac
559
+ ;;
560
+ esac
561
+ ;;
562
+ esac
563
+ ;;
155
564
  (ingest)
156
565
  _arguments "${_arguments_options[@]}" : \
157
566
  '-i+[File to sort into ROMs and patches]:INPUT:_files' \
158
567
  '--input=[File to sort into ROMs and patches]:INPUT:_files' \
159
568
  '-o+[Directory to write anything unpacked along the way into]:DIR:_files' \
160
569
  '--output=[Directory to write anything unpacked along the way into]:DIR:_files' \
570
+ '*-d+[RWFP1 identify pack, raw or Brotli, for ROM titles (repeatable; native defaults to built-in data)]:PACK:_files' \
571
+ '*--database=[RWFP1 identify pack, raw or Brotli, for ROM titles (repeatable; native defaults to built-in data)]:PACK:_files' \
161
572
  '*-s+[Pick which ROM to use when the archive holds more than one, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
162
573
  '*--select=[Pick which ROM to use when the archive holds more than one, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
163
574
  '*--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
575
  '--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' \
576
+ '*--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)' \
577
+ '*--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
578
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
167
579
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
168
580
  '(-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 +591,8 @@ _arguments "${_arguments_options[@]}" : \
179
591
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
180
592
  '(--no-color)--color[Keep colors even when output is piped]' \
181
593
  '(--color)--no-color[Turn colors off]' \
594
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
595
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
182
596
  '-h[Print help (see more with '\''--help'\'')]' \
183
597
  '--help[Print help (see more with '\''--help'\'')]' \
184
598
  && ret=0
@@ -187,15 +601,18 @@ _arguments "${_arguments_options[@]}" : \
187
601
  _arguments "${_arguments_options[@]}" : \
188
602
  '*-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
603
  '*--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' \
604
+ '-f+[Output format, such as zip, 7z, chd, rvz, or z3ds \[default\: from the --output extension\]]:FORMAT:(zip 7z chd rvz z3ds)' \
605
+ '--format=[Output format, such as zip, 7z, chd, rvz, or z3ds \[default\: from the --output extension\]]:FORMAT:(zip 7z chd rvz z3ds)' \
192
606
  '-o+[Where to write the archive]:PATH:_files' \
193
607
  '--output=[Where to write the archive]:PATH:_files' \
194
- '*--codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:CODEC:_default' \
608
+ '*--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
609
  '--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
610
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
197
611
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
198
612
  '(-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)' \
613
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
614
+ '-n[Print the plan (inputs, output, format, codec, level, threads) and stop without writing]' \
615
+ '--dry-run[Print the plan (inputs, output, format, codec, level, threads) and stop without writing]' \
199
616
  '--json[Print one JSON object per line instead of human-readable output]' \
200
617
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
201
618
  '(--progress)--no-progress[Hide progress]' \
@@ -206,6 +623,8 @@ _arguments "${_arguments_options[@]}" : \
206
623
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
207
624
  '(--no-color)--color[Keep colors even when output is piped]' \
208
625
  '(--color)--no-color[Turn colors off]' \
626
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
627
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
209
628
  '-h[Print help (see more with '\''--help'\'')]' \
210
629
  '--help[Print help (see more with '\''--help'\'')]' \
211
630
  && ret=0
@@ -218,6 +637,7 @@ _arguments "${_arguments_options[@]}" : \
218
637
  '(--in-place)--output=[Where to write the trimmed file. Only valid with a single trimmable input]:OUTPUT:_files' \
219
638
  '-e+[Save next to each original under this extension. {ext} stands for the original one, as in trim.{ext}]:EXTENSION:_default' \
220
639
  '--extension=[Save next to each original under this extension. {ext} stands for the original one, as in trim.{ext}]:EXTENSION:_default' \
640
+ '*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
221
641
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
222
642
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
223
643
  '(-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 +652,7 @@ _arguments "${_arguments_options[@]}" : \
232
652
  '--no-extract[Do not look inside archives; trim only the files named directly]' \
233
653
  '--revert-marker[Add a small footer recording what was cut, so --revert can restore the original exactly]' \
234
654
  '--reversible[Add a small footer recording what was cut, so --revert can restore the original exactly]' \
655
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
235
656
  '--json[Print one JSON object per line instead of human-readable output]' \
236
657
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
237
658
  '(--progress)--no-progress[Hide progress]' \
@@ -242,6 +663,8 @@ _arguments "${_arguments_options[@]}" : \
242
663
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
243
664
  '(--no-color)--color[Keep colors even when output is piped]' \
244
665
  '(--color)--no-color[Turn colors off]' \
666
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
667
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
245
668
  '-h[Print help (see more with '\''--help'\'')]' \
246
669
  '--help[Print help (see more with '\''--help'\'')]' \
247
670
  && ret=0
@@ -259,6 +682,8 @@ _arguments "${_arguments_options[@]}" : \
259
682
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
260
683
  '(--no-color)--color[Keep colors even when output is piped]' \
261
684
  '(--color)--no-color[Turn colors off]' \
685
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
686
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
262
687
  '-h[Print help]' \
263
688
  '--help[Print help]' \
264
689
  ":: :_rom-weaver__subcmd__patch_commands" \
@@ -285,9 +710,12 @@ _arguments "${_arguments_options[@]}" : \
285
710
  '--bundle=[Follow a rom-weaver-bundle.json recipe\: a file path, or an http(s) URL]:BUNDLE:_files' \
286
711
  '*--with=[Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)]:GLOB:_default' \
287
712
  '*--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' \
713
+ '--compress-format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
714
+ '--format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
715
+ '*--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)' \
716
+ '*--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
717
  '--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)' \
718
+ '--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
719
  '*--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
720
  '*--expect-in=[Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
293
721
  '*--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)' \
@@ -296,8 +724,8 @@ _arguments "${_arguments_options[@]}" : \
296
724
  '*--n64-byte-order=[Byte order to put an N64 ROM in for each patch\: auto, keep, big-endian, little-endian, or byte-swapped \[default\: auto\]]:N64_BYTE_ORDER:(auto keep big-endian little-endian byte-swapped)' \
297
725
  '*--expect-out=[Fail unless the patched ROM has this checksum, as in sha1=abc... (repeatable, comma-separable)]:ALGO=HEX:_default' \
298
726
  '*--code=[Game Genie or GameShark/Pro Action Replay code to bake into the ROM. Repeat for each code]:CODES:_default' \
299
- '--code-system=[Console the --code values are for (nes, snes, genesis, gameboy), when the ROM header does not say]:CODE_SYSTEM:_default' \
300
- '--code-kind=[Which cheat scheme the --code values use\: auto, game-genie, or gameshark/par]:CODE_KIND:_default' \
727
+ '--code-system=[Console the --code values are for (nes, snes, genesis, gameboy, gba, psx), when the ROM header does not say]:CODE_SYSTEM:_default' \
728
+ '--code-kind=[Which cheat scheme the --code values use\: auto, game-genie, gameshark/par, or xploder]:CODE_KIND:_default' \
301
729
  '--emit-bundle=[Also write a rom-weaver-bundle.json recording this run, so someone else can repeat it]:PATH:_files' \
302
730
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
303
731
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
@@ -305,9 +733,13 @@ _arguments "${_arguments_options[@]}" : \
305
733
  '--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
306
734
  '--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
307
735
  '--no-compress[Write a plain ROM instead of compressing the result]' \
736
+ '--raw[Write a plain ROM instead of compressing the result]' \
308
737
  '--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
738
  '--ignore-checksum-validation[Apply the patch even when its own checksums do not match. Can produce a broken ROM]' \
310
739
  '--tui[Ask for each patch'\''s name, version, and author, then apply and write a bundle. Needs a terminal]' \
740
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
741
+ '-n[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
742
+ '--dry-run[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
311
743
  '--json[Print one JSON object per line instead of human-readable output]' \
312
744
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
313
745
  '(--progress)--no-progress[Hide progress]' \
@@ -318,6 +750,8 @@ _arguments "${_arguments_options[@]}" : \
318
750
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
319
751
  '(--no-color)--color[Keep colors even when output is piped]' \
320
752
  '(--color)--no-color[Turn colors off]' \
753
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
754
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
321
755
  '-h[Print help (see more with '\''--help'\'')]' \
322
756
  '--help[Print help (see more with '\''--help'\'')]' \
323
757
  && ret=0
@@ -336,9 +770,12 @@ _arguments "${_arguments_options[@]}" : \
336
770
  '--bundle=[Follow a rom-weaver-bundle.json recipe\: a file path, or an http(s) URL]:BUNDLE:_files' \
337
771
  '*--with=[Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)]:GLOB:_default' \
338
772
  '*--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' \
773
+ '--compress-format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
774
+ '--format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
775
+ '*--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)' \
776
+ '*--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
777
  '--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)' \
778
+ '--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
779
  '*--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
780
  '*--expect-in=[Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
344
781
  '*--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)' \
@@ -347,8 +784,8 @@ _arguments "${_arguments_options[@]}" : \
347
784
  '*--n64-byte-order=[Byte order to put an N64 ROM in for each patch\: auto, keep, big-endian, little-endian, or byte-swapped \[default\: auto\]]:N64_BYTE_ORDER:(auto keep big-endian little-endian byte-swapped)' \
348
785
  '*--expect-out=[Fail unless the patched ROM has this checksum, as in sha1=abc... (repeatable, comma-separable)]:ALGO=HEX:_default' \
349
786
  '*--code=[Game Genie or GameShark/Pro Action Replay code to bake into the ROM. Repeat for each code]:CODES:_default' \
350
- '--code-system=[Console the --code values are for (nes, snes, genesis, gameboy), when the ROM header does not say]:CODE_SYSTEM:_default' \
351
- '--code-kind=[Which cheat scheme the --code values use\: auto, game-genie, or gameshark/par]:CODE_KIND:_default' \
787
+ '--code-system=[Console the --code values are for (nes, snes, genesis, gameboy, gba, psx), when the ROM header does not say]:CODE_SYSTEM:_default' \
788
+ '--code-kind=[Which cheat scheme the --code values use\: auto, game-genie, gameshark/par, or xploder]:CODE_KIND:_default' \
352
789
  '--emit-bundle=[Also write a rom-weaver-bundle.json recording this run, so someone else can repeat it]:PATH:_files' \
353
790
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
354
791
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
@@ -356,9 +793,13 @@ _arguments "${_arguments_options[@]}" : \
356
793
  '--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
357
794
  '--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
358
795
  '--no-compress[Write a plain ROM instead of compressing the result]' \
796
+ '--raw[Write a plain ROM instead of compressing the result]' \
359
797
  '--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
798
  '--ignore-checksum-validation[Apply the patch even when its own checksums do not match. Can produce a broken ROM]' \
361
799
  '--tui[Ask for each patch'\''s name, version, and author, then apply and write a bundle. Needs a terminal]' \
800
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
801
+ '-n[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
802
+ '--dry-run[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
362
803
  '--json[Print one JSON object per line instead of human-readable output]' \
363
804
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
364
805
  '(--progress)--no-progress[Hide progress]' \
@@ -369,6 +810,8 @@ _arguments "${_arguments_options[@]}" : \
369
810
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
370
811
  '(--no-color)--color[Keep colors even when output is piped]' \
371
812
  '(--color)--no-color[Turn colors off]' \
813
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
814
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
372
815
  '-h[Print help (see more with '\''--help'\'')]' \
373
816
  '--help[Print help (see more with '\''--help'\'')]' \
374
817
  && ret=0
@@ -406,6 +849,8 @@ _arguments "${_arguments_options[@]}" : \
406
849
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
407
850
  '(--no-color)--color[Keep colors even when output is piped]' \
408
851
  '(--color)--no-color[Turn colors off]' \
852
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
853
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
409
854
  '-h[Print help (see more with '\''--help'\'')]' \
410
855
  '--help[Print help (see more with '\''--help'\'')]' \
411
856
  && ret=0
@@ -420,8 +865,8 @@ _arguments "${_arguments_options[@]}" : \
420
865
  '--output=[Where to write the patch. Required unless --plan is used]:PATH:_files' \
421
866
  '*--assume-in=[Take the original ROM'\''s checksum on trust rather than reading the file, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
422
867
  '*--code=[Build the patch from a Game Genie or GameShark/Pro Action Replay code instead of a second ROM. Repeat for each code; cannot be used with --modified]:CODES:_default' \
423
- '--code-system=[Console the --code values are for (nes, snes, genesis, gameboy), when the ROM header does not say]:CODE_SYSTEM:_default' \
424
- '--code-kind=[Which cheat scheme the --code values use\: auto, game-genie, or gameshark/par]:CODE_KIND:_default' \
868
+ '--code-system=[Console the --code values are for (nes, snes, genesis, gameboy, gba, psx), when the ROM header does not say]:CODE_SYSTEM:_default' \
869
+ '--code-kind=[Which cheat scheme the --code values use\: auto, game-genie, gameshark/par, or xploder]:CODE_KIND:_default' \
425
870
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
426
871
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
427
872
  '--solid-system=[SOLID patches only\: console the ROM is for]:SOLID_SYSTEM:_default' \
@@ -437,6 +882,7 @@ _arguments "${_arguments_options[@]}" : \
437
882
  '--ignore-checksum-validation[Write the patch even when the format'\''s own consistency checks fail, and leave its checksums out]' \
438
883
  '--checksum-name[Put the original ROM'\''s crc32 in the patch file name, as \[crc32\:HEX\]]' \
439
884
  '--solid-extended[SOLID patches only\: use the extended header even with none of the extended fields filled in]' \
885
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
440
886
  '--json[Print one JSON object per line instead of human-readable output]' \
441
887
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
442
888
  '(--progress)--no-progress[Hide progress]' \
@@ -447,6 +893,8 @@ _arguments "${_arguments_options[@]}" : \
447
893
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
448
894
  '(--no-color)--color[Keep colors even when output is piped]' \
449
895
  '(--color)--no-color[Turn colors off]' \
896
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
897
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
450
898
  '-h[Print help (see more with '\''--help'\'')]' \
451
899
  '--help[Print help (see more with '\''--help'\'')]' \
452
900
  && ret=0
@@ -500,6 +948,8 @@ _arguments "${_arguments_options[@]}" : \
500
948
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
501
949
  '(--no-color)--color[Keep colors even when output is piped]' \
502
950
  '(--color)--no-color[Turn colors off]' \
951
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
952
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
503
953
  '-h[Print help]' \
504
954
  '--help[Print help]' \
505
955
  ":: :_rom-weaver__subcmd__bundle_commands" \
@@ -539,13 +989,15 @@ _arguments "${_arguments_options[@]}" : \
539
989
  '--output=[Where to write the bundle. Name it rom-weaver-bundle.json, or add .gz or .zst to compress it]:OUTPUT:_files' \
540
990
  '--bundle=[Also pack the bundle and its ROM and patches into one shareable archive, such as release.zip]:BUNDLE:_files' \
541
991
  '--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' \
992
+ '*--checksum=[Which checksums to record for the ROM (repeatable, comma-separable) \[default\: crc32,md5,sha1\]]:ALGO:(crc32 md5 sha1 sha256 blake3 crc32c crc16 adler32)' \
993
+ '*--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
994
  '--from=[Build the bundle from a hand-written rom-weaver-bundle.json instead of flags. Use - to read it from stdin]:FILE:_files' \
544
995
  '--schema-ref=[Record this \$schema URL in the bundle so editors can validate it. Left out unless asked for]:URL:_default' \
545
996
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
546
997
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
547
998
  '(-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
999
  '--no-bundle-rom[Keep the ROM out of --bundle and record only its checksums, so whoever applies the bundle brings their own copy]' \
1000
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
549
1001
  '--json[Print one JSON object per line instead of human-readable output]' \
550
1002
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
551
1003
  '(--progress)--no-progress[Hide progress]' \
@@ -556,6 +1008,8 @@ _arguments "${_arguments_options[@]}" : \
556
1008
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
557
1009
  '(--no-color)--color[Keep colors even when output is piped]' \
558
1010
  '(--color)--no-color[Turn colors off]' \
1011
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1012
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
559
1013
  '-h[Print help (see more with '\''--help'\'')]' \
560
1014
  '--help[Print help (see more with '\''--help'\'')]' \
561
1015
  && ret=0
@@ -583,6 +1037,8 @@ _arguments "${_arguments_options[@]}" : \
583
1037
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
584
1038
  '(--no-color)--color[Keep colors even when output is piped]' \
585
1039
  '(--color)--no-color[Turn colors off]' \
1040
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1041
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
586
1042
  '-h[Print help (see more with '\''--help'\'')]' \
587
1043
  '--help[Print help (see more with '\''--help'\'')]' \
588
1044
  && ret=0
@@ -600,6 +1056,8 @@ _arguments "${_arguments_options[@]}" : \
600
1056
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
601
1057
  '(--no-color)--color[Keep colors even when output is piped]' \
602
1058
  '(--color)--no-color[Turn colors off]' \
1059
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1060
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
603
1061
  '-h[Print help (see more with '\''--help'\'')]' \
604
1062
  '--help[Print help (see more with '\''--help'\'')]' \
605
1063
  && ret=0
@@ -653,6 +1111,8 @@ _arguments "${_arguments_options[@]}" : \
653
1111
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
654
1112
  '(--no-color)--color[Keep colors even when output is piped]' \
655
1113
  '(--color)--no-color[Turn colors off]' \
1114
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1115
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
656
1116
  '-h[Print help]' \
657
1117
  '--help[Print help]' \
658
1118
  ":: :_rom-weaver__subcmd__tools_commands" \
@@ -683,6 +1143,8 @@ _arguments "${_arguments_options[@]}" : \
683
1143
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
684
1144
  '(--no-color)--color[Keep colors even when output is piped]' \
685
1145
  '(--color)--no-color[Turn colors off]' \
1146
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1147
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
686
1148
  '-h[Print help (see more with '\''--help'\'')]' \
687
1149
  '--help[Print help (see more with '\''--help'\'')]' \
688
1150
  && ret=0
@@ -734,6 +1196,8 @@ _arguments "${_arguments_options[@]}" : \
734
1196
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
735
1197
  '(--no-color)--color[Keep colors even when output is piped]' \
736
1198
  '(--color)--no-color[Turn colors off]' \
1199
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1200
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
737
1201
  '-h[Print help]' \
738
1202
  '--help[Print help]' \
739
1203
  && ret=0
@@ -752,9 +1216,12 @@ _arguments "${_arguments_options[@]}" : \
752
1216
  '--bundle=[Follow a rom-weaver-bundle.json recipe\: a file path, or an http(s) URL]:BUNDLE:_files' \
753
1217
  '*--with=[Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)]:GLOB:_default' \
754
1218
  '*--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' \
1219
+ '--compress-format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
1220
+ '--format=[Format to compress the patched ROM into \[default\: from the --output extension\]]:COMPRESS_FORMAT:(zip 7z chd rvz z3ds)' \
1221
+ '*--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)' \
1222
+ '*--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
1223
  '--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)' \
1224
+ '--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
1225
  '*--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
1226
  '*--expect-in=[Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
760
1227
  '*--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)' \
@@ -763,8 +1230,8 @@ _arguments "${_arguments_options[@]}" : \
763
1230
  '*--n64-byte-order=[Byte order to put an N64 ROM in for each patch\: auto, keep, big-endian, little-endian, or byte-swapped \[default\: auto\]]:N64_BYTE_ORDER:(auto keep big-endian little-endian byte-swapped)' \
764
1231
  '*--expect-out=[Fail unless the patched ROM has this checksum, as in sha1=abc... (repeatable, comma-separable)]:ALGO=HEX:_default' \
765
1232
  '*--code=[Game Genie or GameShark/Pro Action Replay code to bake into the ROM. Repeat for each code]:CODES:_default' \
766
- '--code-system=[Console the --code values are for (nes, snes, genesis, gameboy), when the ROM header does not say]:CODE_SYSTEM:_default' \
767
- '--code-kind=[Which cheat scheme the --code values use\: auto, game-genie, or gameshark/par]:CODE_KIND:_default' \
1233
+ '--code-system=[Console the --code values are for (nes, snes, genesis, gameboy, gba, psx), when the ROM header does not say]:CODE_SYSTEM:_default' \
1234
+ '--code-kind=[Which cheat scheme the --code values use\: auto, game-genie, gameshark/par, or xploder]:CODE_KIND:_default' \
768
1235
  '--emit-bundle=[Also write a rom-weaver-bundle.json recording this run, so someone else can repeat it]:PATH:_files' \
769
1236
  '-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
770
1237
  '--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
@@ -772,9 +1239,13 @@ _arguments "${_arguments_options[@]}" : \
772
1239
  '--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
773
1240
  '--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
774
1241
  '--no-compress[Write a plain ROM instead of compressing the result]' \
1242
+ '--raw[Write a plain ROM instead of compressing the result]' \
775
1243
  '--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
1244
  '--ignore-checksum-validation[Apply the patch even when its own checksums do not match. Can produce a broken ROM]' \
777
1245
  '--tui[Ask for each patch'\''s name, version, and author, then apply and write a bundle. Needs a terminal]' \
1246
+ '--force[Overwrite the output if it already exists (without this, the command stops instead)]' \
1247
+ '-n[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
1248
+ '--dry-run[Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing]' \
778
1249
  '--json[Print one JSON object per line instead of human-readable output]' \
779
1250
  '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
780
1251
  '(--progress)--no-progress[Hide progress]' \
@@ -785,6 +1256,8 @@ _arguments "${_arguments_options[@]}" : \
785
1256
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
786
1257
  '(--no-color)--color[Keep colors even when output is piped]' \
787
1258
  '(--color)--no-color[Turn colors off]' \
1259
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1260
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
788
1261
  '-h[Print help (see more with '\''--help'\'')]' \
789
1262
  '--help[Print help (see more with '\''--help'\'')]' \
790
1263
  && ret=0
@@ -802,11 +1275,32 @@ _arguments "${_arguments_options[@]}" : \
802
1275
  '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
803
1276
  '(--no-color)--color[Keep colors even when output is piped]' \
804
1277
  '(--color)--no-color[Turn colors off]' \
1278
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1279
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
805
1280
  '-h[Print help (see more with '\''--help'\'')]' \
806
1281
  '--help[Print help (see more with '\''--help'\'')]' \
807
1282
  ':shell -- Shell to print completions for:(bash elvish fish powershell zsh)' \
808
1283
  && ret=0
809
1284
  ;;
1285
+ (formats)
1286
+ _arguments "${_arguments_options[@]}" : \
1287
+ '(-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)' \
1288
+ '--json[Print one JSON object per line instead of human-readable output]' \
1289
+ '(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
1290
+ '(--progress)--no-progress[Hide progress]' \
1291
+ '(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
1292
+ '(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
1293
+ '(--log-level -v --verbose)-q[Log errors only]' \
1294
+ '(--log-level -v --verbose)--quiet[Log errors only]' \
1295
+ '--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
1296
+ '(--no-color)--color[Keep colors even when output is piped]' \
1297
+ '(--color)--no-color[Turn colors off]' \
1298
+ '-y[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1299
+ '--yes[Answer yes to every confirmation instead of asking. Does not choose between candidates]' \
1300
+ '-h[Print help (see more with '\''--help'\'')]' \
1301
+ '--help[Print help (see more with '\''--help'\'')]' \
1302
+ && ret=0
1303
+ ;;
810
1304
  (help)
811
1305
  _arguments "${_arguments_options[@]}" : \
812
1306
  ":: :_rom-weaver__subcmd__help_commands" \
@@ -831,6 +1325,74 @@ _arguments "${_arguments_options[@]}" : \
831
1325
  _arguments "${_arguments_options[@]}" : \
832
1326
  && ret=0
833
1327
  ;;
1328
+ (identify)
1329
+ _arguments "${_arguments_options[@]}" : \
1330
+ ":: :_rom-weaver__subcmd__help__subcmd__identify_commands" \
1331
+ "*::: :->identify" \
1332
+ && ret=0
1333
+
1334
+ case $state in
1335
+ (identify)
1336
+ words=($line[1] "${words[@]}")
1337
+ (( CURRENT += 1 ))
1338
+ curcontext="${curcontext%:*:*}:rom-weaver-help-identify-command-$line[1]:"
1339
+ case $line[1] in
1340
+ (database)
1341
+ _arguments "${_arguments_options[@]}" : \
1342
+ ":: :_rom-weaver__subcmd__help__subcmd__identify__subcmd__database_commands" \
1343
+ "*::: :->database" \
1344
+ && ret=0
1345
+
1346
+ case $state in
1347
+ (database)
1348
+ words=($line[1] "${words[@]}")
1349
+ (( CURRENT += 1 ))
1350
+ curcontext="${curcontext%:*:*}:rom-weaver-help-identify-database-command-$line[1]:"
1351
+ case $line[1] in
1352
+ (list)
1353
+ _arguments "${_arguments_options[@]}" : \
1354
+ && ret=0
1355
+ ;;
1356
+ (status)
1357
+ _arguments "${_arguments_options[@]}" : \
1358
+ && ret=0
1359
+ ;;
1360
+ (path)
1361
+ _arguments "${_arguments_options[@]}" : \
1362
+ && ret=0
1363
+ ;;
1364
+ (remove)
1365
+ _arguments "${_arguments_options[@]}" : \
1366
+ && ret=0
1367
+ ;;
1368
+ (import-redump)
1369
+ _arguments "${_arguments_options[@]}" : \
1370
+ && ret=0
1371
+ ;;
1372
+ (install-all)
1373
+ _arguments "${_arguments_options[@]}" : \
1374
+ && ret=0
1375
+ ;;
1376
+ (install-group)
1377
+ _arguments "${_arguments_options[@]}" : \
1378
+ && ret=0
1379
+ ;;
1380
+ (install)
1381
+ _arguments "${_arguments_options[@]}" : \
1382
+ && ret=0
1383
+ ;;
1384
+ (update)
1385
+ _arguments "${_arguments_options[@]}" : \
1386
+ && ret=0
1387
+ ;;
1388
+ esac
1389
+ ;;
1390
+ esac
1391
+ ;;
1392
+ esac
1393
+ ;;
1394
+ esac
1395
+ ;;
834
1396
  (ingest)
835
1397
  _arguments "${_arguments_options[@]}" : \
836
1398
  && ret=0
@@ -931,6 +1493,10 @@ _arguments "${_arguments_options[@]}" : \
931
1493
  _arguments "${_arguments_options[@]}" : \
932
1494
  && ret=0
933
1495
  ;;
1496
+ (formats)
1497
+ _arguments "${_arguments_options[@]}" : \
1498
+ && ret=0
1499
+ ;;
934
1500
  (help)
935
1501
  _arguments "${_arguments_options[@]}" : \
936
1502
  && ret=0
@@ -951,6 +1517,7 @@ _rom-weaver_commands() {
951
1517
  'inspect:Identify a file\: its format, its platform, and any header it carries' \
952
1518
  'extract:Unpack an archive or single-payload compressed format' \
953
1519
  'checksum:Compute checksums for a file, or for a ROM inside an archive' \
1520
+ 'identify:Identify a ROM title from its checksums' \
954
1521
  'ingest:Sort a file into ROMs and patches, unpacking and hashing along the way' \
955
1522
  'compress:Pack files into an archive, disc image, or ROM-specific compressed format' \
956
1523
  'trim:Cut the padding off a ROM, or put it back' \
@@ -960,6 +1527,7 @@ _rom-weaver_commands() {
960
1527
  'plan-extract-batch:Plan a memory-/thread-aware concurrent extraction schedule from per-job source sizes (no I/O)' \
961
1528
  'weave:Apply one or more patches to a ROM, in order (same as \`patch apply\`)' \
962
1529
  'completions:Print a tab-completion script for your shell' \
1530
+ 'formats:List the formats, codecs, and checksum algorithms this build supports' \
963
1531
  'help:Print this message or the help of the given subcommand(s)' \
964
1532
  )
965
1533
  _describe -t commands 'rom-weaver commands' commands "$@"
@@ -1039,12 +1607,18 @@ _rom-weaver__subcmd__extract_commands() {
1039
1607
  local commands; commands=()
1040
1608
  _describe -t commands 'rom-weaver extract commands' commands "$@"
1041
1609
  }
1610
+ (( $+functions[_rom-weaver__subcmd__formats_commands] )) ||
1611
+ _rom-weaver__subcmd__formats_commands() {
1612
+ local commands; commands=()
1613
+ _describe -t commands 'rom-weaver formats commands' commands "$@"
1614
+ }
1042
1615
  (( $+functions[_rom-weaver__subcmd__help_commands] )) ||
1043
1616
  _rom-weaver__subcmd__help_commands() {
1044
1617
  local commands; commands=(
1045
1618
  'probe:Identify a file\: its format, its platform, and any header it carries' \
1046
1619
  'extract:Unpack an archive or single-payload compressed format' \
1047
1620
  'checksum:Compute checksums for a file, or for a ROM inside an archive' \
1621
+ 'identify:Identify a ROM title from its checksums' \
1048
1622
  'ingest:Sort a file into ROMs and patches, unpacking and hashing along the way' \
1049
1623
  'compress:Pack files into an archive, disc image, or ROM-specific compressed format' \
1050
1624
  'trim:Cut the padding off a ROM, or put it back' \
@@ -1054,6 +1628,7 @@ _rom-weaver__subcmd__help_commands() {
1054
1628
  'plan-extract-batch:Plan a memory-/thread-aware concurrent extraction schedule from per-job source sizes (no I/O)' \
1055
1629
  'weave:Apply one or more patches to a ROM, in order (same as \`patch apply\`)' \
1056
1630
  'completions:Print a tab-completion script for your shell' \
1631
+ 'formats:List the formats, codecs, and checksum algorithms this build supports' \
1057
1632
  'help:Print this message or the help of the given subcommand(s)' \
1058
1633
  )
1059
1634
  _describe -t commands 'rom-weaver help commands' commands "$@"
@@ -1102,11 +1677,83 @@ _rom-weaver__subcmd__help__subcmd__extract_commands() {
1102
1677
  local commands; commands=()
1103
1678
  _describe -t commands 'rom-weaver help extract commands' commands "$@"
1104
1679
  }
1680
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__formats_commands] )) ||
1681
+ _rom-weaver__subcmd__help__subcmd__formats_commands() {
1682
+ local commands; commands=()
1683
+ _describe -t commands 'rom-weaver help formats commands' commands "$@"
1684
+ }
1105
1685
  (( $+functions[_rom-weaver__subcmd__help__subcmd__help_commands] )) ||
1106
1686
  _rom-weaver__subcmd__help__subcmd__help_commands() {
1107
1687
  local commands; commands=()
1108
1688
  _describe -t commands 'rom-weaver help help commands' commands "$@"
1109
1689
  }
1690
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify_commands] )) ||
1691
+ _rom-weaver__subcmd__help__subcmd__identify_commands() {
1692
+ local commands; commands=(
1693
+ 'database:Manage the installed identify database packs' \
1694
+ )
1695
+ _describe -t commands 'rom-weaver help identify commands' commands "$@"
1696
+ }
1697
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database_commands] )) ||
1698
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database_commands() {
1699
+ local commands; commands=(
1700
+ 'list:List every catalog platform, its source, and whether its pack is installed' \
1701
+ 'status:List the installed pack files\: slug, format, size, and sha256' \
1702
+ 'path:Print the identify database directory' \
1703
+ 'remove:Remove one system'\''s installed pack' \
1704
+ 'import-redump:Build identify packs from local Redump DAT ZIP files' \
1705
+ 'install-all:Install the full identify database for this rom-weaver version' \
1706
+ 'install-group:Download and install one optional identify pack group' \
1707
+ 'install:Download and install one Redump system pack (or --all)' \
1708
+ 'update:Download and update installed Redump system packs' \
1709
+ )
1710
+ _describe -t commands 'rom-weaver help identify database commands' commands "$@"
1711
+ }
1712
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__import-redump_commands] )) ||
1713
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__import-redump_commands() {
1714
+ local commands; commands=()
1715
+ _describe -t commands 'rom-weaver help identify database import-redump commands' commands "$@"
1716
+ }
1717
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__install_commands] )) ||
1718
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__install_commands() {
1719
+ local commands; commands=()
1720
+ _describe -t commands 'rom-weaver help identify database install commands' commands "$@"
1721
+ }
1722
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__install-all_commands] )) ||
1723
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__install-all_commands() {
1724
+ local commands; commands=()
1725
+ _describe -t commands 'rom-weaver help identify database install-all commands' commands "$@"
1726
+ }
1727
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__install-group_commands] )) ||
1728
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__install-group_commands() {
1729
+ local commands; commands=()
1730
+ _describe -t commands 'rom-weaver help identify database install-group commands' commands "$@"
1731
+ }
1732
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__list_commands] )) ||
1733
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__list_commands() {
1734
+ local commands; commands=()
1735
+ _describe -t commands 'rom-weaver help identify database list commands' commands "$@"
1736
+ }
1737
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__path_commands] )) ||
1738
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__path_commands() {
1739
+ local commands; commands=()
1740
+ _describe -t commands 'rom-weaver help identify database path commands' commands "$@"
1741
+ }
1742
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__remove_commands] )) ||
1743
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__remove_commands() {
1744
+ local commands; commands=()
1745
+ _describe -t commands 'rom-weaver help identify database remove commands' commands "$@"
1746
+ }
1747
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__status_commands] )) ||
1748
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__status_commands() {
1749
+ local commands; commands=()
1750
+ _describe -t commands 'rom-weaver help identify database status commands' commands "$@"
1751
+ }
1752
+ (( $+functions[_rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__update_commands] )) ||
1753
+ _rom-weaver__subcmd__help__subcmd__identify__subcmd__database__subcmd__update_commands() {
1754
+ local commands; commands=()
1755
+ _describe -t commands 'rom-weaver help identify database update commands' commands "$@"
1756
+ }
1110
1757
  (( $+functions[_rom-weaver__subcmd__help__subcmd__ingest_commands] )) ||
1111
1758
  _rom-weaver__subcmd__help__subcmd__ingest_commands() {
1112
1759
  local commands; commands=()
@@ -1168,6 +1815,214 @@ _rom-weaver__subcmd__help__subcmd__weave_commands() {
1168
1815
  local commands; commands=()
1169
1816
  _describe -t commands 'rom-weaver help weave commands' commands "$@"
1170
1817
  }
1818
+ (( $+functions[_rom-weaver__subcmd__identify_commands] )) ||
1819
+ _rom-weaver__subcmd__identify_commands() {
1820
+ local commands; commands=(
1821
+ 'database:Manage the installed identify database packs' \
1822
+ 'help:Print this message or the help of the given subcommand(s)' \
1823
+ )
1824
+ _describe -t commands 'rom-weaver identify commands' commands "$@"
1825
+ }
1826
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database_commands] )) ||
1827
+ _rom-weaver__subcmd__identify__subcmd__database_commands() {
1828
+ local commands; commands=(
1829
+ 'list:List every catalog platform, its source, and whether its pack is installed' \
1830
+ 'status:List the installed pack files\: slug, format, size, and sha256' \
1831
+ 'path:Print the identify database directory' \
1832
+ 'remove:Remove one system'\''s installed pack' \
1833
+ 'import-redump:Build identify packs from local Redump DAT ZIP files' \
1834
+ 'install-all:Install the full identify database for this rom-weaver version' \
1835
+ 'install-group:Download and install one optional identify pack group' \
1836
+ 'install:Download and install one Redump system pack (or --all)' \
1837
+ 'update:Download and update installed Redump system packs' \
1838
+ 'help:Print this message or the help of the given subcommand(s)' \
1839
+ )
1840
+ _describe -t commands 'rom-weaver identify database commands' commands "$@"
1841
+ }
1842
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help_commands] )) ||
1843
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help_commands() {
1844
+ local commands; commands=(
1845
+ 'list:List every catalog platform, its source, and whether its pack is installed' \
1846
+ 'status:List the installed pack files\: slug, format, size, and sha256' \
1847
+ 'path:Print the identify database directory' \
1848
+ 'remove:Remove one system'\''s installed pack' \
1849
+ 'import-redump:Build identify packs from local Redump DAT ZIP files' \
1850
+ 'install-all:Install the full identify database for this rom-weaver version' \
1851
+ 'install-group:Download and install one optional identify pack group' \
1852
+ 'install:Download and install one Redump system pack (or --all)' \
1853
+ 'update:Download and update installed Redump system packs' \
1854
+ 'help:Print this message or the help of the given subcommand(s)' \
1855
+ )
1856
+ _describe -t commands 'rom-weaver identify database help commands' commands "$@"
1857
+ }
1858
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__help_commands] )) ||
1859
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__help_commands() {
1860
+ local commands; commands=()
1861
+ _describe -t commands 'rom-weaver identify database help help commands' commands "$@"
1862
+ }
1863
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__import-redump_commands] )) ||
1864
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__import-redump_commands() {
1865
+ local commands; commands=()
1866
+ _describe -t commands 'rom-weaver identify database help import-redump commands' commands "$@"
1867
+ }
1868
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__install_commands] )) ||
1869
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__install_commands() {
1870
+ local commands; commands=()
1871
+ _describe -t commands 'rom-weaver identify database help install commands' commands "$@"
1872
+ }
1873
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__install-all_commands] )) ||
1874
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__install-all_commands() {
1875
+ local commands; commands=()
1876
+ _describe -t commands 'rom-weaver identify database help install-all commands' commands "$@"
1877
+ }
1878
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__install-group_commands] )) ||
1879
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__install-group_commands() {
1880
+ local commands; commands=()
1881
+ _describe -t commands 'rom-weaver identify database help install-group commands' commands "$@"
1882
+ }
1883
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__list_commands] )) ||
1884
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__list_commands() {
1885
+ local commands; commands=()
1886
+ _describe -t commands 'rom-weaver identify database help list commands' commands "$@"
1887
+ }
1888
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__path_commands] )) ||
1889
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__path_commands() {
1890
+ local commands; commands=()
1891
+ _describe -t commands 'rom-weaver identify database help path commands' commands "$@"
1892
+ }
1893
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__remove_commands] )) ||
1894
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__remove_commands() {
1895
+ local commands; commands=()
1896
+ _describe -t commands 'rom-weaver identify database help remove commands' commands "$@"
1897
+ }
1898
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__status_commands] )) ||
1899
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__status_commands() {
1900
+ local commands; commands=()
1901
+ _describe -t commands 'rom-weaver identify database help status commands' commands "$@"
1902
+ }
1903
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__update_commands] )) ||
1904
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__help__subcmd__update_commands() {
1905
+ local commands; commands=()
1906
+ _describe -t commands 'rom-weaver identify database help update commands' commands "$@"
1907
+ }
1908
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__import-redump_commands] )) ||
1909
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__import-redump_commands() {
1910
+ local commands; commands=()
1911
+ _describe -t commands 'rom-weaver identify database import-redump commands' commands "$@"
1912
+ }
1913
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__install_commands] )) ||
1914
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__install_commands() {
1915
+ local commands; commands=()
1916
+ _describe -t commands 'rom-weaver identify database install commands' commands "$@"
1917
+ }
1918
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__install-all_commands] )) ||
1919
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__install-all_commands() {
1920
+ local commands; commands=()
1921
+ _describe -t commands 'rom-weaver identify database install-all commands' commands "$@"
1922
+ }
1923
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__install-group_commands] )) ||
1924
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__install-group_commands() {
1925
+ local commands; commands=()
1926
+ _describe -t commands 'rom-weaver identify database install-group commands' commands "$@"
1927
+ }
1928
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__list_commands] )) ||
1929
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__list_commands() {
1930
+ local commands; commands=()
1931
+ _describe -t commands 'rom-weaver identify database list commands' commands "$@"
1932
+ }
1933
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__path_commands] )) ||
1934
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__path_commands() {
1935
+ local commands; commands=()
1936
+ _describe -t commands 'rom-weaver identify database path commands' commands "$@"
1937
+ }
1938
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__remove_commands] )) ||
1939
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__remove_commands() {
1940
+ local commands; commands=()
1941
+ _describe -t commands 'rom-weaver identify database remove commands' commands "$@"
1942
+ }
1943
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__status_commands] )) ||
1944
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__status_commands() {
1945
+ local commands; commands=()
1946
+ _describe -t commands 'rom-weaver identify database status commands' commands "$@"
1947
+ }
1948
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__database__subcmd__update_commands] )) ||
1949
+ _rom-weaver__subcmd__identify__subcmd__database__subcmd__update_commands() {
1950
+ local commands; commands=()
1951
+ _describe -t commands 'rom-weaver identify database update commands' commands "$@"
1952
+ }
1953
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help_commands] )) ||
1954
+ _rom-weaver__subcmd__identify__subcmd__help_commands() {
1955
+ local commands; commands=(
1956
+ 'database:Manage the installed identify database packs' \
1957
+ 'help:Print this message or the help of the given subcommand(s)' \
1958
+ )
1959
+ _describe -t commands 'rom-weaver identify help commands' commands "$@"
1960
+ }
1961
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database_commands] )) ||
1962
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database_commands() {
1963
+ local commands; commands=(
1964
+ 'list:List every catalog platform, its source, and whether its pack is installed' \
1965
+ 'status:List the installed pack files\: slug, format, size, and sha256' \
1966
+ 'path:Print the identify database directory' \
1967
+ 'remove:Remove one system'\''s installed pack' \
1968
+ 'import-redump:Build identify packs from local Redump DAT ZIP files' \
1969
+ 'install-all:Install the full identify database for this rom-weaver version' \
1970
+ 'install-group:Download and install one optional identify pack group' \
1971
+ 'install:Download and install one Redump system pack (or --all)' \
1972
+ 'update:Download and update installed Redump system packs' \
1973
+ )
1974
+ _describe -t commands 'rom-weaver identify help database commands' commands "$@"
1975
+ }
1976
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__import-redump_commands] )) ||
1977
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__import-redump_commands() {
1978
+ local commands; commands=()
1979
+ _describe -t commands 'rom-weaver identify help database import-redump commands' commands "$@"
1980
+ }
1981
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__install_commands] )) ||
1982
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__install_commands() {
1983
+ local commands; commands=()
1984
+ _describe -t commands 'rom-weaver identify help database install commands' commands "$@"
1985
+ }
1986
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__install-all_commands] )) ||
1987
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__install-all_commands() {
1988
+ local commands; commands=()
1989
+ _describe -t commands 'rom-weaver identify help database install-all commands' commands "$@"
1990
+ }
1991
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__install-group_commands] )) ||
1992
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__install-group_commands() {
1993
+ local commands; commands=()
1994
+ _describe -t commands 'rom-weaver identify help database install-group commands' commands "$@"
1995
+ }
1996
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__list_commands] )) ||
1997
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__list_commands() {
1998
+ local commands; commands=()
1999
+ _describe -t commands 'rom-weaver identify help database list commands' commands "$@"
2000
+ }
2001
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__path_commands] )) ||
2002
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__path_commands() {
2003
+ local commands; commands=()
2004
+ _describe -t commands 'rom-weaver identify help database path commands' commands "$@"
2005
+ }
2006
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__remove_commands] )) ||
2007
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__remove_commands() {
2008
+ local commands; commands=()
2009
+ _describe -t commands 'rom-weaver identify help database remove commands' commands "$@"
2010
+ }
2011
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__status_commands] )) ||
2012
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__status_commands() {
2013
+ local commands; commands=()
2014
+ _describe -t commands 'rom-weaver identify help database status commands' commands "$@"
2015
+ }
2016
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__update_commands] )) ||
2017
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__database__subcmd__update_commands() {
2018
+ local commands; commands=()
2019
+ _describe -t commands 'rom-weaver identify help database update commands' commands "$@"
2020
+ }
2021
+ (( $+functions[_rom-weaver__subcmd__identify__subcmd__help__subcmd__help_commands] )) ||
2022
+ _rom-weaver__subcmd__identify__subcmd__help__subcmd__help_commands() {
2023
+ local commands; commands=()
2024
+ _describe -t commands 'rom-weaver identify help help commands' commands "$@"
2025
+ }
1171
2026
  (( $+functions[_rom-weaver__subcmd__ingest_commands] )) ||
1172
2027
  _rom-weaver__subcmd__ingest_commands() {
1173
2028
  local commands; commands=()