@rom-weaver/cli 0.12.3 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,6 +32,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
32
32
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
33
33
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
34
34
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
35
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
36
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
35
37
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
36
38
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
37
39
  [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
@@ -49,6 +51,7 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
49
51
  [CompletionResult]::new('plan-extract-batch', 'plan-extract-batch', [CompletionResultType]::ParameterValue, 'Plan a memory-/thread-aware concurrent extraction schedule from per-job source sizes (no I/O)')
50
52
  [CompletionResult]::new('weave', 'weave', [CompletionResultType]::ParameterValue, 'Apply one or more patches to a ROM, in order (same as `patch apply`)')
51
53
  [CompletionResult]::new('completions', 'completions', [CompletionResultType]::ParameterValue, 'Print a tab-completion script for your shell')
54
+ [CompletionResult]::new('formats', 'formats', [CompletionResultType]::ParameterValue, 'List the formats, codecs, and checksum algorithms this build supports')
52
55
  [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
53
56
  break
54
57
  }
@@ -71,6 +74,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
71
74
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
72
75
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
73
76
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
77
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
78
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
74
79
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
75
80
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
76
81
  break
@@ -94,6 +99,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
94
99
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
95
100
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
96
101
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
102
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
103
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
97
104
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
98
105
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
99
106
  break
@@ -107,7 +114,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
107
114
  [CompletionResult]::new('-o', '-o', [CompletionResultType]::ParameterName, 'Directory to write the extracted files into')
108
115
  [CompletionResult]::new('--output', '--output', [CompletionResultType]::ParameterName, 'Directory to write the extracted files into')
109
116
  [CompletionResult]::new('--checksum', '--checksum', [CompletionResultType]::ParameterName, 'Also hash every extracted file (repeatable, comma-separable)')
110
- [CompletionResult]::new('--checksum-rom', '--checksum-rom', [CompletionResultType]::ParameterName, 'Like --checksum, but hash only the ROMs and skip sidecar files. Ignored when --checksum is also given')
117
+ [CompletionResult]::new('--algo', '--algo', [CompletionResultType]::ParameterName, 'Also hash every extracted file (repeatable, comma-separable)')
118
+ [CompletionResult]::new('--checksum-rom', '--checksum-rom', [CompletionResultType]::ParameterName, 'Like --checksum, but hash only the ROMs and skip sidecar files. Cannot be combined with --checksum')
111
119
  [CompletionResult]::new('-j', '-j', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
112
120
  [CompletionResult]::new('--threads', '--threads', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
113
121
  [CompletionResult]::new('--log-level', '--log-level', [CompletionResultType]::ParameterName, 'How much rom-weaver logs to stderr. Separate from the normal output [default: off]')
@@ -126,6 +134,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
126
134
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
127
135
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
128
136
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
137
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
138
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
129
139
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
130
140
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
131
141
  break
@@ -133,8 +143,9 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
133
143
  'rom-weaver;checksum' {
134
144
  [CompletionResult]::new('-i', '-i', [CompletionResultType]::ParameterName, 'File to hash. Use - to read from stdin')
135
145
  [CompletionResult]::new('--input', '--input', [CompletionResultType]::ParameterName, 'File to hash. Use - to read from stdin')
136
- [CompletionResult]::new('-a', '-a', [CompletionResultType]::ParameterName, 'Which checksum to compute: crc32, md5, sha1, sha256, blake3, crc32c, crc16, or adler32 (repeatable, comma-separable)')
137
- [CompletionResult]::new('--algo', '--algo', [CompletionResultType]::ParameterName, 'Which checksum to compute: crc32, md5, sha1, sha256, blake3, crc32c, crc16, or adler32 (repeatable, comma-separable)')
146
+ [CompletionResult]::new('-a', '-a', [CompletionResultType]::ParameterName, 'Which checksum to compute (repeatable, comma-separable)')
147
+ [CompletionResult]::new('--algo', '--algo', [CompletionResultType]::ParameterName, 'Which checksum to compute (repeatable, comma-separable)')
148
+ [CompletionResult]::new('--checksum', '--checksum', [CompletionResultType]::ParameterName, 'Which checksum to compute (repeatable, comma-separable)')
138
149
  [CompletionResult]::new('-s', '-s', [CompletionResultType]::ParameterName, 'Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)')
139
150
  [CompletionResult]::new('--select', '--select', [CompletionResultType]::ParameterName, 'Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)')
140
151
  [CompletionResult]::new('--filter', '--filter', [CompletionResultType]::ParameterName, 'Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)')
@@ -157,6 +168,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
157
168
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
158
169
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
159
170
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
171
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
172
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
160
173
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
161
174
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
162
175
  break
@@ -171,6 +184,7 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
171
184
  [CompletionResult]::new('--sidecar-name', '--sidecar-name', [CompletionResultType]::ParameterName, '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')
172
185
  [CompletionResult]::new('--split-bin', '--split-bin', [CompletionResultType]::ParameterName, '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')
173
186
  [CompletionResult]::new('--checksum', '--checksum', [CompletionResultType]::ParameterName, 'Which checksums to compute for each ROM found (repeatable, comma-separable) [default: crc32,md5,sha1]')
187
+ [CompletionResult]::new('--algo', '--algo', [CompletionResultType]::ParameterName, 'Which checksums to compute for each ROM found (repeatable, comma-separable) [default: crc32,md5,sha1]')
174
188
  [CompletionResult]::new('-j', '-j', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
175
189
  [CompletionResult]::new('--threads', '--threads', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
176
190
  [CompletionResult]::new('--log-level', '--log-level', [CompletionResultType]::ParameterName, 'How much rom-weaver logs to stderr. Separate from the normal output [default: off]')
@@ -187,6 +201,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
187
201
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
188
202
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
189
203
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
204
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
205
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
190
206
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
191
207
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
192
208
  break
@@ -203,6 +219,9 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
203
219
  [CompletionResult]::new('-j', '-j', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
204
220
  [CompletionResult]::new('--threads', '--threads', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
205
221
  [CompletionResult]::new('--log-level', '--log-level', [CompletionResultType]::ParameterName, 'How much rom-weaver logs to stderr. Separate from the normal output [default: off]')
222
+ [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Overwrite the output if it already exists (without this, the command stops instead)')
223
+ [CompletionResult]::new('-n', '-n', [CompletionResultType]::ParameterName, 'Print the plan (inputs, output, format, codec, level, threads) and stop without writing')
224
+ [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Print the plan (inputs, output, format, codec, level, threads) and stop without writing')
206
225
  [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Print one JSON object per line instead of human-readable output')
207
226
  [CompletionResult]::new('--progress', '--progress', [CompletionResultType]::ParameterName, 'Show progress even when output is piped to a file or another program')
208
227
  [CompletionResult]::new('--no-progress', '--no-progress', [CompletionResultType]::ParameterName, 'Hide progress')
@@ -213,6 +232,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
213
232
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
214
233
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
215
234
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
235
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
236
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
216
237
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
217
238
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
218
239
  break
@@ -224,6 +245,7 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
224
245
  [CompletionResult]::new('--output', '--output', [CompletionResultType]::ParameterName, 'Where to write the trimmed file. Only valid with a single trimmable input')
225
246
  [CompletionResult]::new('-e', '-e', [CompletionResultType]::ParameterName, 'Save next to each original under this extension. {ext} stands for the original one, as in trim.{ext}')
226
247
  [CompletionResult]::new('--extension', '--extension', [CompletionResultType]::ParameterName, 'Save next to each original under this extension. {ext} stands for the original one, as in trim.{ext}')
248
+ [CompletionResult]::new('--filter', '--filter', [CompletionResultType]::ParameterName, 'Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)')
227
249
  [CompletionResult]::new('-j', '-j', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
228
250
  [CompletionResult]::new('--threads', '--threads', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
229
251
  [CompletionResult]::new('--log-level', '--log-level', [CompletionResultType]::ParameterName, 'How much rom-weaver logs to stderr. Separate from the normal output [default: off]')
@@ -238,6 +260,7 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
238
260
  [CompletionResult]::new('--no-extract', '--no-extract', [CompletionResultType]::ParameterName, 'Do not look inside archives; trim only the files named directly')
239
261
  [CompletionResult]::new('--revert-marker', '--revert-marker', [CompletionResultType]::ParameterName, 'Add a small footer recording what was cut, so --revert can restore the original exactly')
240
262
  [CompletionResult]::new('--reversible', '--reversible', [CompletionResultType]::ParameterName, 'Add a small footer recording what was cut, so --revert can restore the original exactly')
263
+ [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Overwrite the output if it already exists (without this, the command stops instead)')
241
264
  [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Print one JSON object per line instead of human-readable output')
242
265
  [CompletionResult]::new('--progress', '--progress', [CompletionResultType]::ParameterName, 'Show progress even when output is piped to a file or another program')
243
266
  [CompletionResult]::new('--no-progress', '--no-progress', [CompletionResultType]::ParameterName, 'Hide progress')
@@ -248,6 +271,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
248
271
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
249
272
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
250
273
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
274
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
275
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
251
276
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
252
277
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
253
278
  break
@@ -264,6 +289,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
264
289
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
265
290
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
266
291
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
292
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
293
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
267
294
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
268
295
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
269
296
  [CompletionResult]::new('apply', 'apply', [CompletionResultType]::ParameterValue, 'Apply one or more patches to a ROM, in order')
@@ -287,8 +314,11 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
287
314
  [CompletionResult]::new('--with', '--with', [CompletionResultType]::ParameterName, 'Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)')
288
315
  [CompletionResult]::new('--without', '--without', [CompletionResultType]::ParameterName, 'Turn off a bundle patch, matched by name or file name (repeatable)')
289
316
  [CompletionResult]::new('--compress-format', '--compress-format', [CompletionResultType]::ParameterName, 'Format to compress the patched ROM into [default: from the --output extension]')
317
+ [CompletionResult]::new('--format', '--format', [CompletionResultType]::ParameterName, 'Format to compress the patched ROM into [default: from the --output extension]')
290
318
  [CompletionResult]::new('--compress-codec', '--compress-codec', [CompletionResultType]::ParameterName, 'Compression method to use, as codec or codec:level (repeatable, comma-separable)')
319
+ [CompletionResult]::new('--codec', '--codec', [CompletionResultType]::ParameterName, 'Compression method to use, as codec or codec:level (repeatable, comma-separable)')
291
320
  [CompletionResult]::new('--compress-level', '--compress-level', [CompletionResultType]::ParameterName, 'How hard to compress: min, very-low, low, medium, high, very-high, or max [default: max]')
321
+ [CompletionResult]::new('--level', '--level', [CompletionResultType]::ParameterName, 'How hard to compress: min, very-low, low, medium, high, very-high, or max [default: max]')
292
322
  [CompletionResult]::new('--assume-in', '--assume-in', [CompletionResultType]::ParameterName, 'Take this checksum on trust instead of reading the ROM to compute it, as in crc32=1234abcd (repeatable, comma-separable)')
293
323
  [CompletionResult]::new('--expect-in', '--expect-in', [CompletionResultType]::ParameterName, 'Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)')
294
324
  [CompletionResult]::new('--patch-header', '--patch-header', [CompletionResultType]::ParameterName, 'Whether a patch applies to the ROM with or without its copier header: auto, keep, or strip [default: auto]')
@@ -306,9 +336,13 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
306
336
  [CompletionResult]::new('--no-extract', '--no-extract', [CompletionResultType]::ParameterName, 'Do not look inside archives; treat the input and every patch as raw files')
307
337
  [CompletionResult]::new('--no-ignore', '--no-ignore', [CompletionResultType]::ParameterName, 'Also consider files normally skipped inside archives: readmes, images, checksum sidecars, and OS clutter such as .DS_Store')
308
338
  [CompletionResult]::new('--no-compress', '--no-compress', [CompletionResultType]::ParameterName, 'Write a plain ROM instead of compressing the result')
339
+ [CompletionResult]::new('--raw', '--raw', [CompletionResultType]::ParameterName, 'Write a plain ROM instead of compressing the result')
309
340
  [CompletionResult]::new('--repair-checksum', '--repair-checksum', [CompletionResultType]::ParameterName, 'Recompute the ROM''s internal header checksum afterwards, so the console does not reject it (SNES, NES, GB, GBA, Mega Drive, SMS, N64, NDS)')
310
341
  [CompletionResult]::new('--ignore-checksum-validation', '--ignore-checksum-validation', [CompletionResultType]::ParameterName, 'Apply the patch even when its own checksums do not match. Can produce a broken ROM')
311
342
  [CompletionResult]::new('--tui', '--tui', [CompletionResultType]::ParameterName, 'Ask for each patch''s name, version, and author, then apply and write a bundle. Needs a terminal')
343
+ [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Overwrite the output if it already exists (without this, the command stops instead)')
344
+ [CompletionResult]::new('-n', '-n', [CompletionResultType]::ParameterName, 'Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing')
345
+ [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing')
312
346
  [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Print one JSON object per line instead of human-readable output')
313
347
  [CompletionResult]::new('--progress', '--progress', [CompletionResultType]::ParameterName, 'Show progress even when output is piped to a file or another program')
314
348
  [CompletionResult]::new('--no-progress', '--no-progress', [CompletionResultType]::ParameterName, 'Hide progress')
@@ -319,6 +353,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
319
353
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
320
354
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
321
355
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
356
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
357
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
322
358
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
323
359
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
324
360
  break
@@ -337,8 +373,11 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
337
373
  [CompletionResult]::new('--with', '--with', [CompletionResultType]::ParameterName, 'Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)')
338
374
  [CompletionResult]::new('--without', '--without', [CompletionResultType]::ParameterName, 'Turn off a bundle patch, matched by name or file name (repeatable)')
339
375
  [CompletionResult]::new('--compress-format', '--compress-format', [CompletionResultType]::ParameterName, 'Format to compress the patched ROM into [default: from the --output extension]')
376
+ [CompletionResult]::new('--format', '--format', [CompletionResultType]::ParameterName, 'Format to compress the patched ROM into [default: from the --output extension]')
340
377
  [CompletionResult]::new('--compress-codec', '--compress-codec', [CompletionResultType]::ParameterName, 'Compression method to use, as codec or codec:level (repeatable, comma-separable)')
378
+ [CompletionResult]::new('--codec', '--codec', [CompletionResultType]::ParameterName, 'Compression method to use, as codec or codec:level (repeatable, comma-separable)')
341
379
  [CompletionResult]::new('--compress-level', '--compress-level', [CompletionResultType]::ParameterName, 'How hard to compress: min, very-low, low, medium, high, very-high, or max [default: max]')
380
+ [CompletionResult]::new('--level', '--level', [CompletionResultType]::ParameterName, 'How hard to compress: min, very-low, low, medium, high, very-high, or max [default: max]')
342
381
  [CompletionResult]::new('--assume-in', '--assume-in', [CompletionResultType]::ParameterName, 'Take this checksum on trust instead of reading the ROM to compute it, as in crc32=1234abcd (repeatable, comma-separable)')
343
382
  [CompletionResult]::new('--expect-in', '--expect-in', [CompletionResultType]::ParameterName, 'Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)')
344
383
  [CompletionResult]::new('--patch-header', '--patch-header', [CompletionResultType]::ParameterName, 'Whether a patch applies to the ROM with or without its copier header: auto, keep, or strip [default: auto]')
@@ -356,9 +395,13 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
356
395
  [CompletionResult]::new('--no-extract', '--no-extract', [CompletionResultType]::ParameterName, 'Do not look inside archives; treat the input and every patch as raw files')
357
396
  [CompletionResult]::new('--no-ignore', '--no-ignore', [CompletionResultType]::ParameterName, 'Also consider files normally skipped inside archives: readmes, images, checksum sidecars, and OS clutter such as .DS_Store')
358
397
  [CompletionResult]::new('--no-compress', '--no-compress', [CompletionResultType]::ParameterName, 'Write a plain ROM instead of compressing the result')
398
+ [CompletionResult]::new('--raw', '--raw', [CompletionResultType]::ParameterName, 'Write a plain ROM instead of compressing the result')
359
399
  [CompletionResult]::new('--repair-checksum', '--repair-checksum', [CompletionResultType]::ParameterName, '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
400
  [CompletionResult]::new('--ignore-checksum-validation', '--ignore-checksum-validation', [CompletionResultType]::ParameterName, 'Apply the patch even when its own checksums do not match. Can produce a broken ROM')
361
401
  [CompletionResult]::new('--tui', '--tui', [CompletionResultType]::ParameterName, 'Ask for each patch''s name, version, and author, then apply and write a bundle. Needs a terminal')
402
+ [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Overwrite the output if it already exists (without this, the command stops instead)')
403
+ [CompletionResult]::new('-n', '-n', [CompletionResultType]::ParameterName, 'Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing')
404
+ [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing')
362
405
  [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Print one JSON object per line instead of human-readable output')
363
406
  [CompletionResult]::new('--progress', '--progress', [CompletionResultType]::ParameterName, 'Show progress even when output is piped to a file or another program')
364
407
  [CompletionResult]::new('--no-progress', '--no-progress', [CompletionResultType]::ParameterName, 'Hide progress')
@@ -369,6 +412,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
369
412
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
370
413
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
371
414
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
415
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
416
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
372
417
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
373
418
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
374
419
  break
@@ -405,6 +450,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
405
450
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
406
451
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
407
452
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
453
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
454
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
408
455
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
409
456
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
410
457
  break
@@ -435,6 +482,7 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
435
482
  [CompletionResult]::new('--ignore-checksum-validation', '--ignore-checksum-validation', [CompletionResultType]::ParameterName, 'Write the patch even when the format''s own consistency checks fail, and leave its checksums out')
436
483
  [CompletionResult]::new('--checksum-name', '--checksum-name', [CompletionResultType]::ParameterName, 'Put the original ROM''s crc32 in the patch file name, as [crc32:HEX]')
437
484
  [CompletionResult]::new('--solid-extended', '--solid-extended', [CompletionResultType]::ParameterName, 'SOLID patches only: use the extended header even with none of the extended fields filled in')
485
+ [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Overwrite the output if it already exists (without this, the command stops instead)')
438
486
  [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Print one JSON object per line instead of human-readable output')
439
487
  [CompletionResult]::new('--progress', '--progress', [CompletionResultType]::ParameterName, 'Show progress even when output is piped to a file or another program')
440
488
  [CompletionResult]::new('--no-progress', '--no-progress', [CompletionResultType]::ParameterName, 'Hide progress')
@@ -445,6 +493,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
445
493
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
446
494
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
447
495
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
496
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
497
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
448
498
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
449
499
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
450
500
  break
@@ -480,6 +530,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
480
530
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
481
531
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
482
532
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
533
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
534
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
483
535
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
484
536
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
485
537
  [CompletionResult]::new('create', 'create', [CompletionResultType]::ParameterValue, 'Write a rom-weaver-bundle.json recipe from local ROM and patch files')
@@ -514,13 +566,15 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
514
566
  [CompletionResult]::new('--output', '--output', [CompletionResultType]::ParameterName, 'Where to write the bundle. Name it rom-weaver-bundle.json, or add .gz or .zst to compress it')
515
567
  [CompletionResult]::new('--bundle', '--bundle', [CompletionResultType]::ParameterName, 'Also pack the bundle and its ROM and patches into one shareable archive, such as release.zip')
516
568
  [CompletionResult]::new('--bundle-rom', '--bundle-rom', [CompletionResultType]::ParameterName, 'Pack this file into --bundle as the ROM, while --input supplies the checksums and metadata')
517
- [CompletionResult]::new('--checksum', '--checksum', [CompletionResultType]::ParameterName, 'Which checksums to record for the ROM (repeatable) [default: crc32,md5,sha1]')
569
+ [CompletionResult]::new('--checksum', '--checksum', [CompletionResultType]::ParameterName, 'Which checksums to record for the ROM (repeatable, comma-separable) [default: crc32,md5,sha1]')
570
+ [CompletionResult]::new('--algo', '--algo', [CompletionResultType]::ParameterName, 'Which checksums to record for the ROM (repeatable, comma-separable) [default: crc32,md5,sha1]')
518
571
  [CompletionResult]::new('--from', '--from', [CompletionResultType]::ParameterName, 'Build the bundle from a hand-written rom-weaver-bundle.json instead of flags. Use - to read it from stdin')
519
572
  [CompletionResult]::new('--schema-ref', '--schema-ref', [CompletionResultType]::ParameterName, 'Record this $schema URL in the bundle so editors can validate it. Left out unless asked for')
520
573
  [CompletionResult]::new('-j', '-j', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
521
574
  [CompletionResult]::new('--threads', '--threads', [CompletionResultType]::ParameterName, 'How many threads to use at most. auto uses every core; a format may still use fewer')
522
575
  [CompletionResult]::new('--log-level', '--log-level', [CompletionResultType]::ParameterName, 'How much rom-weaver logs to stderr. Separate from the normal output [default: off]')
523
576
  [CompletionResult]::new('--no-bundle-rom', '--no-bundle-rom', [CompletionResultType]::ParameterName, 'Keep the ROM out of --bundle and record only its checksums, so whoever applies the bundle brings their own copy')
577
+ [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Overwrite the output if it already exists (without this, the command stops instead)')
524
578
  [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Print one JSON object per line instead of human-readable output')
525
579
  [CompletionResult]::new('--progress', '--progress', [CompletionResultType]::ParameterName, 'Show progress even when output is piped to a file or another program')
526
580
  [CompletionResult]::new('--no-progress', '--no-progress', [CompletionResultType]::ParameterName, 'Hide progress')
@@ -531,6 +585,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
531
585
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
532
586
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
533
587
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
588
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
589
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
534
590
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
535
591
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
536
592
  break
@@ -557,6 +613,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
557
613
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
558
614
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
559
615
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
616
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
617
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
560
618
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
561
619
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
562
620
  break
@@ -573,6 +631,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
573
631
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
574
632
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
575
633
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
634
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
635
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
576
636
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
577
637
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
578
638
  break
@@ -608,6 +668,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
608
668
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
609
669
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
610
670
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
671
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
672
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
611
673
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
612
674
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
613
675
  [CompletionResult]::new('ppf-undo', 'ppf-undo', [CompletionResultType]::ParameterValue, 'Undo a PPF3 patch, using the undo data stored inside it')
@@ -631,6 +693,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
631
693
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
632
694
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
633
695
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
696
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
697
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
634
698
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
635
699
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
636
700
  break
@@ -664,6 +728,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
664
728
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
665
729
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
666
730
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
731
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
732
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
667
733
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
668
734
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
669
735
  break
@@ -682,8 +748,11 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
682
748
  [CompletionResult]::new('--with', '--with', [CompletionResultType]::ParameterName, 'Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)')
683
749
  [CompletionResult]::new('--without', '--without', [CompletionResultType]::ParameterName, 'Turn off a bundle patch, matched by name or file name (repeatable)')
684
750
  [CompletionResult]::new('--compress-format', '--compress-format', [CompletionResultType]::ParameterName, 'Format to compress the patched ROM into [default: from the --output extension]')
751
+ [CompletionResult]::new('--format', '--format', [CompletionResultType]::ParameterName, 'Format to compress the patched ROM into [default: from the --output extension]')
685
752
  [CompletionResult]::new('--compress-codec', '--compress-codec', [CompletionResultType]::ParameterName, 'Compression method to use, as codec or codec:level (repeatable, comma-separable)')
753
+ [CompletionResult]::new('--codec', '--codec', [CompletionResultType]::ParameterName, 'Compression method to use, as codec or codec:level (repeatable, comma-separable)')
686
754
  [CompletionResult]::new('--compress-level', '--compress-level', [CompletionResultType]::ParameterName, 'How hard to compress: min, very-low, low, medium, high, very-high, or max [default: max]')
755
+ [CompletionResult]::new('--level', '--level', [CompletionResultType]::ParameterName, 'How hard to compress: min, very-low, low, medium, high, very-high, or max [default: max]')
687
756
  [CompletionResult]::new('--assume-in', '--assume-in', [CompletionResultType]::ParameterName, 'Take this checksum on trust instead of reading the ROM to compute it, as in crc32=1234abcd (repeatable, comma-separable)')
688
757
  [CompletionResult]::new('--expect-in', '--expect-in', [CompletionResultType]::ParameterName, 'Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)')
689
758
  [CompletionResult]::new('--patch-header', '--patch-header', [CompletionResultType]::ParameterName, 'Whether a patch applies to the ROM with or without its copier header: auto, keep, or strip [default: auto]')
@@ -701,9 +770,13 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
701
770
  [CompletionResult]::new('--no-extract', '--no-extract', [CompletionResultType]::ParameterName, 'Do not look inside archives; treat the input and every patch as raw files')
702
771
  [CompletionResult]::new('--no-ignore', '--no-ignore', [CompletionResultType]::ParameterName, 'Also consider files normally skipped inside archives: readmes, images, checksum sidecars, and OS clutter such as .DS_Store')
703
772
  [CompletionResult]::new('--no-compress', '--no-compress', [CompletionResultType]::ParameterName, 'Write a plain ROM instead of compressing the result')
773
+ [CompletionResult]::new('--raw', '--raw', [CompletionResultType]::ParameterName, 'Write a plain ROM instead of compressing the result')
704
774
  [CompletionResult]::new('--repair-checksum', '--repair-checksum', [CompletionResultType]::ParameterName, 'Recompute the ROM''s internal header checksum afterwards, so the console does not reject it (SNES, NES, GB, GBA, Mega Drive, SMS, N64, NDS)')
705
775
  [CompletionResult]::new('--ignore-checksum-validation', '--ignore-checksum-validation', [CompletionResultType]::ParameterName, 'Apply the patch even when its own checksums do not match. Can produce a broken ROM')
706
776
  [CompletionResult]::new('--tui', '--tui', [CompletionResultType]::ParameterName, 'Ask for each patch''s name, version, and author, then apply and write a bundle. Needs a terminal')
777
+ [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'Overwrite the output if it already exists (without this, the command stops instead)')
778
+ [CompletionResult]::new('-n', '-n', [CompletionResultType]::ParameterName, 'Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing')
779
+ [CompletionResult]::new('--dry-run', '--dry-run', [CompletionResultType]::ParameterName, 'Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing')
707
780
  [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Print one JSON object per line instead of human-readable output')
708
781
  [CompletionResult]::new('--progress', '--progress', [CompletionResultType]::ParameterName, 'Show progress even when output is piped to a file or another program')
709
782
  [CompletionResult]::new('--no-progress', '--no-progress', [CompletionResultType]::ParameterName, 'Hide progress')
@@ -714,6 +787,8 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
714
787
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
715
788
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
716
789
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
790
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
791
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
717
792
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
718
793
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
719
794
  break
@@ -730,6 +805,26 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
730
805
  [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
731
806
  [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
732
807
  [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
808
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
809
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
810
+ [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
811
+ [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
812
+ break
813
+ }
814
+ 'rom-weaver;formats' {
815
+ [CompletionResult]::new('--log-level', '--log-level', [CompletionResultType]::ParameterName, 'How much rom-weaver logs to stderr. Separate from the normal output [default: off]')
816
+ [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'Print one JSON object per line instead of human-readable output')
817
+ [CompletionResult]::new('--progress', '--progress', [CompletionResultType]::ParameterName, 'Show progress even when output is piped to a file or another program')
818
+ [CompletionResult]::new('--no-progress', '--no-progress', [CompletionResultType]::ParameterName, 'Hide progress')
819
+ [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Log more: -v for info, -vv for debug, -vvv for trace')
820
+ [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Log more: -v for info, -vv for debug, -vvv for trace')
821
+ [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Log errors only')
822
+ [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Log errors only')
823
+ [CompletionResult]::new('--dep-trace', '--dep-trace', [CompletionResultType]::ParameterName, 'Also log trace output from bundled libraries (for bug reports)')
824
+ [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Keep colors even when output is piped')
825
+ [CompletionResult]::new('--no-color', '--no-color', [CompletionResultType]::ParameterName, 'Turn colors off')
826
+ [CompletionResult]::new('-y', '-y', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
827
+ [CompletionResult]::new('--yes', '--yes', [CompletionResultType]::ParameterName, 'Answer yes to every confirmation instead of asking. Does not choose between candidates')
733
828
  [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
734
829
  [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
735
830
  break
@@ -747,6 +842,7 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
747
842
  [CompletionResult]::new('plan-extract-batch', 'plan-extract-batch', [CompletionResultType]::ParameterValue, 'Plan a memory-/thread-aware concurrent extraction schedule from per-job source sizes (no I/O)')
748
843
  [CompletionResult]::new('weave', 'weave', [CompletionResultType]::ParameterValue, 'Apply one or more patches to a ROM, in order (same as `patch apply`)')
749
844
  [CompletionResult]::new('completions', 'completions', [CompletionResultType]::ParameterValue, 'Print a tab-completion script for your shell')
845
+ [CompletionResult]::new('formats', 'formats', [CompletionResultType]::ParameterValue, 'List the formats, codecs, and checksum algorithms this build supports')
750
846
  [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
751
847
  break
752
848
  }
@@ -814,6 +910,9 @@ Register-ArgumentCompleter -Native -CommandName 'rom-weaver' -ScriptBlock {
814
910
  'rom-weaver;help;completions' {
815
911
  break
816
912
  }
913
+ 'rom-weaver;help;formats' {
914
+ break
915
+ }
817
916
  'rom-weaver;help;help' {
818
917
  break
819
918
  }
@@ -4,7 +4,7 @@
4
4
  .SH NAME
5
5
  rom\-weaver\-bundle\-create \- Write a rom\-weaver\-bundle.json recipe from local ROM and patch files
6
6
  .SH SYNOPSIS
7
- \fBrom\-weaver bundle create\fR [\fB\-i\fR|\fB\-\-input\fR] [\fB\-\-json\fR] [\fB\-\-assume\-in\fR] [\fB\-\-progress\fR] [\fB\-\-no\-progress\fR] [\fB\-\-rom\-url\fR] [\fB\-\-log\-level\fR] [\fB\-\-rom\-name\fR] [\fB\-\-patch\fR] [\fB\-v\fR|\fB\-\-verbose\fR]... [\fB\-\-patch\-id\fR] [\fB\-q\fR|\fB\-\-quiet\fR] [\fB\-\-dep\-trace\fR] [\fB\-\-patch\-version\fR] [\fB\-\-color\fR] [\fB\-\-patch\-name\fR] [\fB\-\-no\-color\fR] [\fB\-\-patch\-description\fR] [\fB\-\-patch\-author\fR] [\fB\-\-patch\-label\fR] [\fB\-\-patch\-optional\fR] [\fB\-\-patch\-source\-url\fR] [\fB\-\-patch\-header\fR] [\fB\-\-patch\-basis\fR] [\fB\-\-patch\-expect\-in\fR] [\fB\-\-patch\-expect\-out\fR] [\fB\-\-expect\-out\fR] [\fB\-\-output\-name\fR] [\fB\-\-output\-header\fR] <\fB\-o\fR|\fB\-\-output\fR> [\fB\-\-bundle\fR] [\fB\-\-bundle\-rom\fR] [\fB\-\-no\-bundle\-rom\fR] [\fB\-\-checksum\fR] [\fB\-\-from\fR] [\fB\-\-schema\-ref\fR] [\fB\-j\fR|\fB\-\-threads\fR] [\fB\-h\fR|\fB\-\-help\fR]
7
+ \fBrom\-weaver bundle create\fR [\fB\-i\fR|\fB\-\-input\fR] [\fB\-\-json\fR] [\fB\-\-assume\-in\fR] [\fB\-\-progress\fR] [\fB\-\-no\-progress\fR] [\fB\-\-rom\-url\fR] [\fB\-\-log\-level\fR] [\fB\-\-rom\-name\fR] [\fB\-\-patch\fR] [\fB\-v\fR|\fB\-\-verbose\fR]... [\fB\-\-patch\-id\fR] [\fB\-q\fR|\fB\-\-quiet\fR] [\fB\-\-dep\-trace\fR] [\fB\-\-patch\-version\fR] [\fB\-\-color\fR] [\fB\-\-patch\-name\fR] [\fB\-\-no\-color\fR] [\fB\-\-patch\-description\fR] [\fB\-\-patch\-author\fR] [\fB\-y\fR|\fB\-\-yes\fR] [\fB\-\-patch\-label\fR] [\fB\-\-patch\-optional\fR] [\fB\-\-patch\-source\-url\fR] [\fB\-\-patch\-header\fR] [\fB\-\-patch\-basis\fR] [\fB\-\-patch\-expect\-in\fR] [\fB\-\-patch\-expect\-out\fR] [\fB\-\-expect\-out\fR] [\fB\-\-output\-name\fR] [\fB\-\-output\-header\fR] [\fB\-\-bundle\fR] [\fB\-\-bundle\-rom\fR] [\fB\-\-no\-bundle\-rom\fR] [\fB\-\-checksum\fR] [\fB\-\-from\fR] [\fB\-\-schema\-ref\fR] [\fB\-j\fR|\fB\-\-threads\fR] [\fB\-\-force\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fB\-o\fR|\fB\-\-output\fR>
8
8
  .SH DESCRIPTION
9
9
  Write a rom\-weaver\-bundle.json recipe from local ROM and patch files.
10
10
  .PP
@@ -43,24 +43,52 @@ patches reads left to right:
43
43
  .TP
44
44
  \fB\-\-patch\-id\fR \fI<PATCH_ID>\fR
45
45
  Identifier for the preceding \-\-patch that stays the same across releases, so a replacement keeps its settings
46
+
47
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
48
+
49
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
46
50
  .TP
47
51
  \fB\-\-patch\-version\fR \fI<PATCH_VERSION>\fR
48
52
  Version of the preceding \-\-patch, in whatever form its author uses
53
+
54
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
55
+
56
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
49
57
  .TP
50
58
  \fB\-\-patch\-name\fR \fI<PATCH_NAME>\fR
51
59
  Name to show for the preceding \-\-patch
60
+
61
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
62
+
63
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
52
64
  .TP
53
65
  \fB\-\-patch\-description\fR \fI<PATCH_DESCRIPTION>\fR
54
66
  What the preceding \-\-patch does
67
+
68
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
69
+
70
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
55
71
  .TP
56
72
  \fB\-\-patch\-author\fR \fI<PATCH_AUTHOR>\fR
57
73
  Who made the preceding \-\-patch
74
+
75
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
76
+
77
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
58
78
  .TP
59
79
  \fB\-\-patch\-label\fR \fI<PATCH_LABEL>\fR
60
80
  Short status note for the preceding \-\-patch, such as beta or recommended
81
+
82
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
83
+
84
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
61
85
  .TP
62
86
  \fB\-\-patch\-optional\fR \fI<PATCH_OPTIONAL>\fR
63
87
  Mark the preceding \-\-patch optional, so it starts switched off and needs \-\-with to run
88
+
89
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
90
+
91
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
64
92
  .br
65
93
 
66
94
  .br
@@ -74,9 +102,17 @@ false
74
102
  .TP
75
103
  \fB\-\-patch\-source\-url\fR \fI<PATCH_SOURCE_URL>\fR
76
104
  Where the preceding \-\-patch can be downloaded from. The local file is still read to build the bundle
105
+
106
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
107
+
108
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
77
109
  .TP
78
110
  \fB\-\-patch\-header\fR \fI<PATCH_HEADER>\fR
79
111
  Whether the preceding \-\-patch applies to the ROM with or without its copier header: auto, keep, or strip
112
+
113
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
114
+
115
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
80
116
  .br
81
117
 
82
118
  .br
@@ -92,6 +128,10 @@ auto
92
128
  .TP
93
129
  \fB\-\-patch\-basis\fR \fI<PATCH_BASIS>\fR
94
130
  Which ROM the preceding \-\-patch was built against: base (the bundle\*(Aqs ROM) or previous (the patch before it). Use auto to leave it out and let apply infer it
131
+
132
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
133
+
134
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
95
135
  .br
96
136
 
97
137
  .br
@@ -107,6 +147,10 @@ previous
107
147
  .TP
108
148
  \fB\-\-patch\-expect\-in\fR \fI<ALGO=HEX>\fR
109
149
  Checksum the ROM should have before the preceding \-\-patch runs. Recorded only when it differs from the bundle\*(Aqs ROM checksums (repeatable, comma\-separable)
150
+
151
+ This flag must follow the \-\-patch it describes. Give it once per \-\-patch, in the same order, or leave it out entirely \- a partial list is an error. An occurrence before any \-\-patch has nothing to bind to.
152
+
153
+ \-\-patch a.bps \-\-patch\-name "First" \-\-patch b.ups \-\-patch\-name "Second"
110
154
  .TP
111
155
  \fB\-\-patch\-expect\-out\fR \fI<ALGO=HEX>\fR
112
156
  Checksum the ROM should have after the preceding \-\-patch runs. Recorded only when it differs from the final output checksums (repeatable, comma\-separable)
@@ -144,8 +188,30 @@ Pack this file into \-\-bundle as the ROM, while \-\-input supplies the checksum
144
188
  \fB\-\-no\-bundle\-rom\fR
145
189
  Keep the ROM out of \-\-bundle and record only its checksums, so whoever applies the bundle brings their own copy
146
190
  .TP
147
- \fB\-\-checksum\fR \fI<CHECKSUM>\fR
148
- Which checksums to record for the ROM (repeatable) [default: crc32,md5,sha1]
191
+ \fB\-\-checksum\fR \fI<ALGO>\fR
192
+ Which checksums to record for the ROM (repeatable, comma\-separable) [default: crc32,md5,sha1]
193
+ .br
194
+
195
+ .br
196
+ \fIPossible values:\fR
197
+ .RS 14
198
+ .IP \(bu 2
199
+ crc32
200
+ .IP \(bu 2
201
+ md5
202
+ .IP \(bu 2
203
+ sha1
204
+ .IP \(bu 2
205
+ sha256
206
+ .IP \(bu 2
207
+ blake3
208
+ .IP \(bu 2
209
+ crc32c
210
+ .IP \(bu 2
211
+ crc16
212
+ .IP \(bu 2
213
+ adler32
214
+ .RE
149
215
  .TP
150
216
  \fB\-\-from\fR \fI<FILE>\fR
151
217
  Build the bundle from a hand\-written rom\-weaver\-bundle.json instead of flags.
@@ -163,6 +229,9 @@ Record this $schema URL in the bundle so editors can validate it. Left out unles
163
229
  \fB\-j\fR, \fB\-\-threads\fR \fI<auto|N>\fR [default: auto]
164
230
  How many threads to use at most. auto uses every core; a format may still use fewer
165
231
  .TP
232
+ \fB\-\-force\fR
233
+ Overwrite the output if it already exists (without this, the command stops instead)
234
+ .TP
166
235
  \fB\-h\fR, \fB\-\-help\fR
167
236
  Print help (see a summary with \*(Aq\-h\*(Aq)
168
237
  .SH "GLOBAL OPTIONS"
@@ -211,3 +280,6 @@ Keep colors even when output is piped
211
280
  .TP
212
281
  \fB\-\-no\-color\fR
213
282
  Turn colors off
283
+ .TP
284
+ \fB\-y\fR, \fB\-\-yes\fR
285
+ Answer yes to every confirmation instead of asking. Does not choose between candidates