@rom-weaver/cli 0.10.2 → 0.11.1
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.
- package/README.md +34 -10
- package/docs/completions/_rom-weaver +1288 -0
- package/docs/completions/rom-weaver.bash +1817 -0
- package/docs/completions/rom-weaver.elv +763 -0
- package/docs/completions/rom-weaver.fish +723 -0
- package/docs/completions/rom-weaver.ps1 +824 -0
- package/docs/man/rom-weaver-bundle-create.1 +213 -0
- package/docs/man/rom-weaver-bundle-parse.1 +98 -0
- package/docs/man/rom-weaver-bundle-schema.1 +67 -0
- package/docs/man/rom-weaver-bundle.1 +69 -0
- package/docs/man/rom-weaver-checksum.1 +110 -0
- package/docs/man/rom-weaver-completions.1 +84 -0
- package/docs/man/rom-weaver-compress.1 +125 -0
- package/docs/man/rom-weaver-extract.1 +111 -0
- package/docs/man/rom-weaver-ingest.1 +98 -0
- package/docs/man/rom-weaver-patch-apply.1 +356 -0
- package/docs/man/rom-weaver-patch-create.1 +166 -0
- package/docs/man/rom-weaver-patch-validate.1 +161 -0
- package/docs/man/rom-weaver-patch.1 +69 -0
- package/docs/man/rom-weaver-probe.1 +93 -0
- package/docs/man/rom-weaver-tools-ppf-undo.1 +71 -0
- package/docs/man/rom-weaver-tools.1 +63 -0
- package/docs/man/rom-weaver-trim.1 +111 -0
- package/docs/man/rom-weaver-weave.1 +356 -0
- package/docs/man/rom-weaver.1 +124 -0
- package/package.json +11 -10
|
@@ -0,0 +1,1288 @@
|
|
|
1
|
+
#compdef rom-weaver
|
|
2
|
+
|
|
3
|
+
autoload -U is-at-least
|
|
4
|
+
|
|
5
|
+
_rom-weaver() {
|
|
6
|
+
typeset -A opt_args
|
|
7
|
+
typeset -a _arguments_options
|
|
8
|
+
local ret=1
|
|
9
|
+
|
|
10
|
+
if is-at-least 5.2; then
|
|
11
|
+
_arguments_options=(-s -S -C)
|
|
12
|
+
else
|
|
13
|
+
_arguments_options=(-s -C)
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
local context curcontext="$curcontext" state line
|
|
17
|
+
_arguments "${_arguments_options[@]}" : \
|
|
18
|
+
'(-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)' \
|
|
19
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
20
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
21
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
22
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
23
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
24
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
25
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
26
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
27
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
28
|
+
'(--color)--no-color[Turn colors off]' \
|
|
29
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
30
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
31
|
+
'-V[Print version]' \
|
|
32
|
+
'--version[Print version]' \
|
|
33
|
+
":: :_rom-weaver_commands" \
|
|
34
|
+
"*::: :->rom-weaver" \
|
|
35
|
+
&& ret=0
|
|
36
|
+
case $state in
|
|
37
|
+
(rom-weaver)
|
|
38
|
+
words=($line[1] "${words[@]}")
|
|
39
|
+
(( CURRENT += 1 ))
|
|
40
|
+
curcontext="${curcontext%:*:*}:rom-weaver-command-$line[1]:"
|
|
41
|
+
case $line[1] in
|
|
42
|
+
(probe)
|
|
43
|
+
_arguments "${_arguments_options[@]}" : \
|
|
44
|
+
'-i+[File to identify. Use - to read from stdin]:INPUT:_files' \
|
|
45
|
+
'--input=[File to identify. Use - to read from stdin]:INPUT:_files' \
|
|
46
|
+
'*-s+[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
47
|
+
'*--select=[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
48
|
+
'*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
|
|
49
|
+
'(-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)' \
|
|
50
|
+
'--no-extract[Do not look inside archives; identify the file itself]' \
|
|
51
|
+
'--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
|
|
52
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
53
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
54
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
55
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
56
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
57
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
58
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
59
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
60
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
61
|
+
'(--color)--no-color[Turn colors off]' \
|
|
62
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
63
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
64
|
+
&& ret=0
|
|
65
|
+
;;
|
|
66
|
+
(inspect)
|
|
67
|
+
_arguments "${_arguments_options[@]}" : \
|
|
68
|
+
'-i+[File to identify. Use - to read from stdin]:INPUT:_files' \
|
|
69
|
+
'--input=[File to identify. Use - to read from stdin]:INPUT:_files' \
|
|
70
|
+
'*-s+[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
71
|
+
'*--select=[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
72
|
+
'*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
|
|
73
|
+
'(-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)' \
|
|
74
|
+
'--no-extract[Do not look inside archives; identify the file itself]' \
|
|
75
|
+
'--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
|
|
76
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
77
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
78
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
79
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
80
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
81
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
82
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
83
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
84
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
85
|
+
'(--color)--no-color[Turn colors off]' \
|
|
86
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
87
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
88
|
+
&& ret=0
|
|
89
|
+
;;
|
|
90
|
+
(extract)
|
|
91
|
+
_arguments "${_arguments_options[@]}" : \
|
|
92
|
+
'-i+[Archive or disc image to unpack]:INPUT:_files' \
|
|
93
|
+
'--input=[Archive or disc image to unpack]:INPUT:_files' \
|
|
94
|
+
'*-s+[Extract only these files, by exact name, prefix, or glob (repeatable). For example\: --select '\''game.disc0?.bin'\'']:SELECT:_default' \
|
|
95
|
+
'*--select=[Extract only these files, by exact name, prefix, or glob (repeatable). For example\: --select '\''game.disc0?.bin'\'']:SELECT:_default' \
|
|
96
|
+
'*--filter=[Extract only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
|
|
97
|
+
'-o+[Directory to write the extracted files into]:DIR:_files' \
|
|
98
|
+
'--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' \
|
|
101
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
102
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
103
|
+
'(-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)' \
|
|
104
|
+
'--split-bin[Write a CD-format CHD as a CUE plus one BIN per track (*.trackNN.bin), rather than one merged BIN]' \
|
|
105
|
+
'--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
|
|
106
|
+
'--no-nested-extract[Stop after one layer; leave any archive found inside the input packed]' \
|
|
107
|
+
'--force[Overwrite files already in the output directory (without this, extraction stops instead)]' \
|
|
108
|
+
'--probe[Also report the format and platform of what was extracted, and fail if a lone payload matches no known platform]' \
|
|
109
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
110
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
111
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
112
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
113
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
114
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
115
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
116
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
117
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
118
|
+
'(--color)--no-color[Turn colors off]' \
|
|
119
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
120
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
121
|
+
&& ret=0
|
|
122
|
+
;;
|
|
123
|
+
(checksum)
|
|
124
|
+
_arguments "${_arguments_options[@]}" : \
|
|
125
|
+
'-i+[File to hash. Use - to read from stdin]:INPUT:_files' \
|
|
126
|
+
'--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' \
|
|
129
|
+
'*-s+[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
130
|
+
'*--select=[Pick which file inside the archive to use, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
131
|
+
'*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
|
|
132
|
+
'--start=[Start hashing at this byte offset, counting from 0]:BYTE:_default' \
|
|
133
|
+
'--length=[How many bytes to hash from --start. Defaults to the rest of the file]:BYTES:_default' \
|
|
134
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
135
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
136
|
+
'(-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)' \
|
|
137
|
+
'--no-extract[Do not look inside archives; hash the file itself]' \
|
|
138
|
+
'--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
|
|
139
|
+
'--no-trim-fix[Skip the extra checksums computed for how a trimmable ROM would hash trimmed or untrimmed]' \
|
|
140
|
+
'--probe[Also report the platform of the hashed bytes, and fail if it matches no known platform]' \
|
|
141
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
142
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
143
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
144
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
145
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
146
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
147
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
148
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
149
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
150
|
+
'(--color)--no-color[Turn colors off]' \
|
|
151
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
152
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
153
|
+
&& ret=0
|
|
154
|
+
;;
|
|
155
|
+
(ingest)
|
|
156
|
+
_arguments "${_arguments_options[@]}" : \
|
|
157
|
+
'-i+[File to sort into ROMs and patches]:INPUT:_files' \
|
|
158
|
+
'--input=[File to sort into ROMs and patches]:INPUT:_files' \
|
|
159
|
+
'-o+[Directory to write anything unpacked along the way into]:DIR:_files' \
|
|
160
|
+
'--output=[Directory to write anything unpacked along the way into]:DIR:_files' \
|
|
161
|
+
'*-s+[Pick which ROM to use when the archive holds more than one, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
162
|
+
'*--select=[Pick which ROM to use when the archive holds more than one, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
163
|
+
'*--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
|
+
'--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' \
|
|
166
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
167
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
168
|
+
'(-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)' \
|
|
169
|
+
'--sidecar-only[]' \
|
|
170
|
+
'--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
|
|
171
|
+
'--no-nested-extract[Stop after one layer; leave any archive found inside the input packed]' \
|
|
172
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
173
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
174
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
175
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
176
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
177
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
178
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
179
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
180
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
181
|
+
'(--color)--no-color[Turn colors off]' \
|
|
182
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
183
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
184
|
+
&& ret=0
|
|
185
|
+
;;
|
|
186
|
+
(compress)
|
|
187
|
+
_arguments "${_arguments_options[@]}" : \
|
|
188
|
+
'*-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
|
+
'*--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' \
|
|
192
|
+
'-o+[Where to write the archive]:PATH:_files' \
|
|
193
|
+
'--output=[Where to write the archive]:PATH:_files' \
|
|
194
|
+
'*--codec=[Compression method to use, as codec or codec\:level (repeatable, comma-separable)]:CODEC:_default' \
|
|
195
|
+
'--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
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
197
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
198
|
+
'(-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)' \
|
|
199
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
200
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
201
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
202
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
203
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
204
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
205
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
206
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
207
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
208
|
+
'(--color)--no-color[Turn colors off]' \
|
|
209
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
210
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
211
|
+
&& ret=0
|
|
212
|
+
;;
|
|
213
|
+
(trim)
|
|
214
|
+
_arguments "${_arguments_options[@]}" : \
|
|
215
|
+
'*-i+[File or folder to trim. Repeat for each one]:INPUT:_files' \
|
|
216
|
+
'*--input=[File or folder to trim. Repeat for each one]:INPUT:_files' \
|
|
217
|
+
'(--in-place)-o+[Where to write the trimmed file. Only valid with a single trimmable input]:OUTPUT:_files' \
|
|
218
|
+
'(--in-place)--output=[Where to write the trimmed file. Only valid with a single trimmable input]:OUTPUT:_files' \
|
|
219
|
+
'-e+[Save next to each original under this extension. {ext} stands for the original one, as in trim.{ext}]:EXTENSION:_default' \
|
|
220
|
+
'--extension=[Save next to each original under this extension. {ext} stands for the original one, as in trim.{ext}]:EXTENSION:_default' \
|
|
221
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
222
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
223
|
+
'(-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)' \
|
|
224
|
+
'--in-place[Overwrite the original instead of writing a new file]' \
|
|
225
|
+
'-n[Report what would be trimmed without writing anything]' \
|
|
226
|
+
'--dry-run[Report what would be trimmed without writing anything]' \
|
|
227
|
+
'--revert[Pad a trimmed file back to full size (NDS, GBA, and 3DS only)]' \
|
|
228
|
+
'--untrim[Pad a trimmed file back to full size (NDS, GBA, and 3DS only)]' \
|
|
229
|
+
'--restore[Pad a trimmed file back to full size (NDS, GBA, and 3DS only)]' \
|
|
230
|
+
'--no-recursive[When an input is a folder, look only at its top level]' \
|
|
231
|
+
'--no-filter[Consider every file inside an archive, not just the ones that look like ROMs]' \
|
|
232
|
+
'--no-extract[Do not look inside archives; trim only the files named directly]' \
|
|
233
|
+
'--revert-marker[Add a small footer recording what was cut, so --revert can restore the original exactly]' \
|
|
234
|
+
'--reversible[Add a small footer recording what was cut, so --revert can restore the original exactly]' \
|
|
235
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
236
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
237
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
238
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
239
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
240
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
241
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
242
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
243
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
244
|
+
'(--color)--no-color[Turn colors off]' \
|
|
245
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
246
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
247
|
+
&& ret=0
|
|
248
|
+
;;
|
|
249
|
+
(patch)
|
|
250
|
+
_arguments "${_arguments_options[@]}" : \
|
|
251
|
+
'(-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)' \
|
|
252
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
253
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
254
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
255
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
256
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
257
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
258
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
259
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
260
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
261
|
+
'(--color)--no-color[Turn colors off]' \
|
|
262
|
+
'-h[Print help]' \
|
|
263
|
+
'--help[Print help]' \
|
|
264
|
+
":: :_rom-weaver__subcmd__patch_commands" \
|
|
265
|
+
"*::: :->patch" \
|
|
266
|
+
&& ret=0
|
|
267
|
+
|
|
268
|
+
case $state in
|
|
269
|
+
(patch)
|
|
270
|
+
words=($line[1] "${words[@]}")
|
|
271
|
+
(( CURRENT += 1 ))
|
|
272
|
+
curcontext="${curcontext%:*:*}:rom-weaver-patch-command-$line[1]:"
|
|
273
|
+
case $line[1] in
|
|
274
|
+
(apply)
|
|
275
|
+
_arguments "${_arguments_options[@]}" : \
|
|
276
|
+
'-i+[ROM to patch. May be an archive, a disc sheet (.cue/.gdi), or a bundle]:PATH:_files' \
|
|
277
|
+
'--input=[ROM to patch. May be an archive, a disc sheet (.cue/.gdi), or a bundle]:PATH:_files' \
|
|
278
|
+
'*-s+[Pick which file to use when the ROM or a patch is inside an archive, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
279
|
+
'*--select=[Pick which file to use when the ROM or a patch is inside an archive, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
280
|
+
'--target=[For a .cue or .gdi input, which track gets the patch. Matched like --select and must hit exactly one track]:TARGET:_default' \
|
|
281
|
+
'*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
|
|
282
|
+
'*--patch=[Patch to apply. Repeat once per patch; they run in the order given]:PATCHES:_files' \
|
|
283
|
+
'-o+[Where to write the patched ROM. Optional when a bundle already names the output]:OUTPUT:_files' \
|
|
284
|
+
'--output=[Where to write the patched ROM. Optional when a bundle already names the output]:OUTPUT:_files' \
|
|
285
|
+
'--bundle=[Follow a rom-weaver-bundle.json recipe\: a file path, or an http(s) URL]:BUNDLE:_files' \
|
|
286
|
+
'*--with=[Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)]:GLOB:_default' \
|
|
287
|
+
'*--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' \
|
|
290
|
+
'--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)' \
|
|
291
|
+
'*--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
|
+
'*--expect-in=[Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
293
|
+
'*--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)' \
|
|
294
|
+
'*--patch-basis=[Which ROM the preceding --patch was built against\: auto, base, or previous \[default\: auto\]]:PATCH_BASIS:(auto base previous)' \
|
|
295
|
+
'--output-header=[Whether the finished ROM keeps its copier header\: auto, keep, or strip \[default\: auto\]]:OUTPUT_HEADER:(keep strip auto)' \
|
|
296
|
+
'*--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
|
+
'*--expect-out=[Fail unless the patched ROM has this checksum, as in sha1=abc... (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
298
|
+
'*--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' \
|
|
301
|
+
'--emit-bundle=[Also write a rom-weaver-bundle.json recording this run, so someone else can repeat it]:PATH:_files' \
|
|
302
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
303
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
304
|
+
'(-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)' \
|
|
305
|
+
'--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
|
|
306
|
+
'--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
|
|
307
|
+
'--no-compress[Write a plain ROM instead of compressing the result]' \
|
|
308
|
+
'--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
|
+
'--ignore-checksum-validation[Apply the patch even when its own checksums do not match. Can produce a broken ROM]' \
|
|
310
|
+
'--tui[Ask for each patch'\''s name, version, and author, then apply and write a bundle. Needs a terminal]' \
|
|
311
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
312
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
313
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
314
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
315
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
316
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
317
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
318
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
319
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
320
|
+
'(--color)--no-color[Turn colors off]' \
|
|
321
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
322
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
323
|
+
&& ret=0
|
|
324
|
+
;;
|
|
325
|
+
(weave)
|
|
326
|
+
_arguments "${_arguments_options[@]}" : \
|
|
327
|
+
'-i+[ROM to patch. May be an archive, a disc sheet (.cue/.gdi), or a bundle]:PATH:_files' \
|
|
328
|
+
'--input=[ROM to patch. May be an archive, a disc sheet (.cue/.gdi), or a bundle]:PATH:_files' \
|
|
329
|
+
'*-s+[Pick which file to use when the ROM or a patch is inside an archive, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
330
|
+
'*--select=[Pick which file to use when the ROM or a patch is inside an archive, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
331
|
+
'--target=[For a .cue or .gdi input, which track gets the patch. Matched like --select and must hit exactly one track]:TARGET:_default' \
|
|
332
|
+
'*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
|
|
333
|
+
'*--patch=[Patch to apply. Repeat once per patch; they run in the order given]:PATCHES:_files' \
|
|
334
|
+
'-o+[Where to write the patched ROM. Optional when a bundle already names the output]:OUTPUT:_files' \
|
|
335
|
+
'--output=[Where to write the patched ROM. Optional when a bundle already names the output]:OUTPUT:_files' \
|
|
336
|
+
'--bundle=[Follow a rom-weaver-bundle.json recipe\: a file path, or an http(s) URL]:BUNDLE:_files' \
|
|
337
|
+
'*--with=[Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)]:GLOB:_default' \
|
|
338
|
+
'*--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' \
|
|
341
|
+
'--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)' \
|
|
342
|
+
'*--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
|
+
'*--expect-in=[Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
344
|
+
'*--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)' \
|
|
345
|
+
'*--patch-basis=[Which ROM the preceding --patch was built against\: auto, base, or previous \[default\: auto\]]:PATCH_BASIS:(auto base previous)' \
|
|
346
|
+
'--output-header=[Whether the finished ROM keeps its copier header\: auto, keep, or strip \[default\: auto\]]:OUTPUT_HEADER:(keep strip auto)' \
|
|
347
|
+
'*--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
|
+
'*--expect-out=[Fail unless the patched ROM has this checksum, as in sha1=abc... (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
349
|
+
'*--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' \
|
|
352
|
+
'--emit-bundle=[Also write a rom-weaver-bundle.json recording this run, so someone else can repeat it]:PATH:_files' \
|
|
353
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
354
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
355
|
+
'(-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)' \
|
|
356
|
+
'--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
|
|
357
|
+
'--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
|
|
358
|
+
'--no-compress[Write a plain ROM instead of compressing the result]' \
|
|
359
|
+
'--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
|
+
'--ignore-checksum-validation[Apply the patch even when its own checksums do not match. Can produce a broken ROM]' \
|
|
361
|
+
'--tui[Ask for each patch'\''s name, version, and author, then apply and write a bundle. Needs a terminal]' \
|
|
362
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
363
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
364
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
365
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
366
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
367
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
368
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
369
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
370
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
371
|
+
'(--color)--no-color[Turn colors off]' \
|
|
372
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
373
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
374
|
+
&& ret=0
|
|
375
|
+
;;
|
|
376
|
+
(validate)
|
|
377
|
+
_arguments "${_arguments_options[@]}" : \
|
|
378
|
+
'-i+[ROM to check the patches against. May be an archive]:PATH:_files' \
|
|
379
|
+
'--input=[ROM to check the patches against. May be an archive]:PATH:_files' \
|
|
380
|
+
'*-s+[Pick which file to use when the ROM or a patch is inside an archive, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
381
|
+
'*--select=[Pick which file to use when the ROM or a patch is inside an archive, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
382
|
+
'*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
|
|
383
|
+
'*--patch=[Patch to check. Repeat once per patch; they are checked in the order given]:PATCHES:_files' \
|
|
384
|
+
'*--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' \
|
|
385
|
+
'*--expect-in=[Fail unless the ROM matches\: a checksum (crc32=1234abcd), an exact size (size=N), or a floor (min-size=N). Repeatable, comma-separable]:ALGO=HEX:_default' \
|
|
386
|
+
'--n64-byte-order=[Byte order to put an N64 ROM in before checking\: auto, keep, big-endian, little-endian, or byte-swapped \[default\: auto\]]:N64_BYTE_ORDER:(auto keep big-endian little-endian byte-swapped)' \
|
|
387
|
+
'*--patch-basis=[Which ROM the preceding --patch was built against\: auto, base, or previous \[default\: auto\]]:PATCH_BASIS:(auto base previous)' \
|
|
388
|
+
'*--patch-input-check=[Checksum the preceding --patch expects to see going in, when the patch does not carry one (comma-separable; empty means none)]:ALGO=HEX:_default' \
|
|
389
|
+
'*--patch-output-check=[Checksum the preceding --patch should produce, when the patch does not carry one (comma-separable; empty means none)]:ALGO=HEX:_default' \
|
|
390
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
391
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
392
|
+
'(-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)' \
|
|
393
|
+
'--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
|
|
394
|
+
'--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
|
|
395
|
+
'--strip-header[Remove the ROM'\''s copier header before checking (A78, LNX, NES, FDS, SMC signatures, plus the SNES and PCE size rules)]' \
|
|
396
|
+
'--ignore-checksum-validation[Report a patch as usable even when its own checksums do not match]' \
|
|
397
|
+
'--independent[Check every patch against the original ROM rather than as a chain, and report a verdict for each instead of stopping at the first failure]' \
|
|
398
|
+
'--plan[Report the order the patches would run in and what each would be checked against, without reading the ROM more than needed]' \
|
|
399
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
400
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
401
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
402
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
403
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
404
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
405
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
406
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
407
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
408
|
+
'(--color)--no-color[Turn colors off]' \
|
|
409
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
410
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
411
|
+
&& ret=0
|
|
412
|
+
;;
|
|
413
|
+
(create)
|
|
414
|
+
_arguments "${_arguments_options[@]}" : \
|
|
415
|
+
'--original=[The unmodified ROM]:PATH:_files' \
|
|
416
|
+
'--modified=[The changed ROM. Leave out when using --code, which produces the changed ROM for you]:MODIFIED:_files' \
|
|
417
|
+
'-f+[Patch format, such as bps, ips, or xdelta \[default\: from the --output extension\]]:FORMAT:_default' \
|
|
418
|
+
'--format=[Patch format, such as bps, ips, or xdelta \[default\: from the --output extension\]]:FORMAT:_default' \
|
|
419
|
+
'-o+[Where to write the patch. Required unless --plan is used]:PATH:_files' \
|
|
420
|
+
'--output=[Where to write the patch. Required unless --plan is used]:PATH:_files' \
|
|
421
|
+
'*--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
|
+
'*--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' \
|
|
425
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
426
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
427
|
+
'--solid-system=[SOLID patches only\: console the ROM is for]:SOLID_SYSTEM:_default' \
|
|
428
|
+
'--solid-game=[SOLID patches only\: name of the game]:SOLID_GAME:_default' \
|
|
429
|
+
'--solid-hack=[SOLID patches only\: name of the hack]:SOLID_HACK:_default' \
|
|
430
|
+
'--solid-version=[SOLID patches only\: version of the hack. Switches the patch to its extended header]:SOLID_VERSION:_default' \
|
|
431
|
+
'--solid-author=[SOLID patches only\: who made the hack. Switches the patch to its extended header]:SOLID_AUTHOR:_default' \
|
|
432
|
+
'--solid-contact=[SOLID patches only\: how to reach the author. Switches the patch to its extended header]:SOLID_CONTACT:_default' \
|
|
433
|
+
'--solid-comment=[SOLID patches only\: free-form note. Switches the patch to its extended header]:SOLID_COMMENT:_default' \
|
|
434
|
+
'--xdelta-secondary=[xdelta patches only\: compress the patch'\''s own contents]:XDELTA_SECONDARY:(auto lzma djw fgk none)' \
|
|
435
|
+
'(-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)' \
|
|
436
|
+
'--plan[Only report which formats suit these two ROMs; write nothing]' \
|
|
437
|
+
'--ignore-checksum-validation[Write the patch even when the format'\''s own consistency checks fail, and leave its checksums out]' \
|
|
438
|
+
'--checksum-name[Put the original ROM'\''s crc32 in the patch file name, as \[crc32\:HEX\]]' \
|
|
439
|
+
'--solid-extended[SOLID patches only\: use the extended header even with none of the extended fields filled in]' \
|
|
440
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
441
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
442
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
443
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
444
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
445
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
446
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
447
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
448
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
449
|
+
'(--color)--no-color[Turn colors off]' \
|
|
450
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
451
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
452
|
+
&& ret=0
|
|
453
|
+
;;
|
|
454
|
+
(help)
|
|
455
|
+
_arguments "${_arguments_options[@]}" : \
|
|
456
|
+
":: :_rom-weaver__subcmd__patch__subcmd__help_commands" \
|
|
457
|
+
"*::: :->help" \
|
|
458
|
+
&& ret=0
|
|
459
|
+
|
|
460
|
+
case $state in
|
|
461
|
+
(help)
|
|
462
|
+
words=($line[1] "${words[@]}")
|
|
463
|
+
(( CURRENT += 1 ))
|
|
464
|
+
curcontext="${curcontext%:*:*}:rom-weaver-patch-help-command-$line[1]:"
|
|
465
|
+
case $line[1] in
|
|
466
|
+
(apply)
|
|
467
|
+
_arguments "${_arguments_options[@]}" : \
|
|
468
|
+
&& ret=0
|
|
469
|
+
;;
|
|
470
|
+
(validate)
|
|
471
|
+
_arguments "${_arguments_options[@]}" : \
|
|
472
|
+
&& ret=0
|
|
473
|
+
;;
|
|
474
|
+
(create)
|
|
475
|
+
_arguments "${_arguments_options[@]}" : \
|
|
476
|
+
&& ret=0
|
|
477
|
+
;;
|
|
478
|
+
(help)
|
|
479
|
+
_arguments "${_arguments_options[@]}" : \
|
|
480
|
+
&& ret=0
|
|
481
|
+
;;
|
|
482
|
+
esac
|
|
483
|
+
;;
|
|
484
|
+
esac
|
|
485
|
+
;;
|
|
486
|
+
esac
|
|
487
|
+
;;
|
|
488
|
+
esac
|
|
489
|
+
;;
|
|
490
|
+
(bundle)
|
|
491
|
+
_arguments "${_arguments_options[@]}" : \
|
|
492
|
+
'(-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)' \
|
|
493
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
494
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
495
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
496
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
497
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
498
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
499
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
500
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
501
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
502
|
+
'(--color)--no-color[Turn colors off]' \
|
|
503
|
+
'-h[Print help]' \
|
|
504
|
+
'--help[Print help]' \
|
|
505
|
+
":: :_rom-weaver__subcmd__bundle_commands" \
|
|
506
|
+
"*::: :->bundle" \
|
|
507
|
+
&& ret=0
|
|
508
|
+
|
|
509
|
+
case $state in
|
|
510
|
+
(bundle)
|
|
511
|
+
words=($line[1] "${words[@]}")
|
|
512
|
+
(( CURRENT += 1 ))
|
|
513
|
+
curcontext="${curcontext%:*:*}:rom-weaver-bundle-command-$line[1]:"
|
|
514
|
+
case $line[1] in
|
|
515
|
+
(create)
|
|
516
|
+
_arguments "${_arguments_options[@]}" : \
|
|
517
|
+
'-i+[ROM the patches apply to. Its checksums and size are read from the file and recorded in the bundle]:INPUT:_files' \
|
|
518
|
+
'--input=[ROM the patches apply to. Its checksums and size are read from the file and recorded in the bundle]:INPUT:_files' \
|
|
519
|
+
'*--assume-in=[Take the ROM'\''s checksum and size on trust rather than reading it, as in crc32=1234abcd,size=1048576 (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
520
|
+
'--rom-url=[Where the ROM can be downloaded from. With --input, the local file still supplies the checksums; on its own, the bundle records only this url]:ROM_URL:_default' \
|
|
521
|
+
'--rom-name=[File name to show for the ROM, and to base the output name on]:ROM_NAME:_default' \
|
|
522
|
+
'*--patch=[Patch to list in the bundle. Repeat once per patch, in the order they should be applied]:PATCH:_files' \
|
|
523
|
+
'*--patch-id=[Identifier for the preceding --patch that stays the same across releases, so a replacement keeps its settings]:PATCH_ID:_default' \
|
|
524
|
+
'*--patch-version=[Version of the preceding --patch, in whatever form its author uses]:PATCH_VERSION:_default' \
|
|
525
|
+
'*--patch-name=[Name to show for the preceding --patch]:PATCH_NAME:_default' \
|
|
526
|
+
'*--patch-description=[What the preceding --patch does]:PATCH_DESCRIPTION:_default' \
|
|
527
|
+
'*--patch-author=[Who made the preceding --patch]:PATCH_AUTHOR:_default' \
|
|
528
|
+
'*--patch-label=[Short status note for the preceding --patch, such as beta or recommended]:PATCH_LABEL:_default' \
|
|
529
|
+
'*--patch-optional=[Mark the preceding --patch optional, so it starts switched off and needs --with to run]:PATCH_OPTIONAL:(true false)' \
|
|
530
|
+
'*--patch-source-url=[Where the preceding --patch can be downloaded from. The local file is still read to build the bundle]:PATCH_SOURCE_URL:_default' \
|
|
531
|
+
'*--patch-header=[Whether the preceding --patch applies to the ROM with or without its copier header\: auto, keep, or strip]:PATCH_HEADER:(keep strip auto)' \
|
|
532
|
+
'*--patch-basis=[Which ROM the preceding --patch was built against\: base (the bundle'\''s ROM) or previous (the patch before it). Use auto to leave it out and let apply infer it]:PATCH_BASIS:(auto base previous)' \
|
|
533
|
+
'*--patch-expect-in=[Checksum the ROM should have before the preceding --patch runs. Recorded only when it differs from the bundle'\''s ROM checksums (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
534
|
+
'*--patch-expect-out=[Checksum the ROM should have after the preceding --patch runs. Recorded only when it differs from the final output checksums (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
535
|
+
'*--expect-out=[Checksum the ROM should have once every patch has run, so users can confirm they got the right result (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
536
|
+
'--output-name=[File name the bundle suggests for the patched ROM]:OUTPUT_NAME:_default' \
|
|
537
|
+
'--output-header=[Whether the patched ROM should keep its copier header\: auto, keep, or strip]:OUTPUT_HEADER:(keep strip auto)' \
|
|
538
|
+
'-o+[Where to write the bundle. Name it rom-weaver-bundle.json, or add .gz or .zst to compress it]:OUTPUT:_files' \
|
|
539
|
+
'--output=[Where to write the bundle. Name it rom-weaver-bundle.json, or add .gz or .zst to compress it]:OUTPUT:_files' \
|
|
540
|
+
'--bundle=[Also pack the bundle and its ROM and patches into one shareable archive, such as release.zip]:BUNDLE:_files' \
|
|
541
|
+
'--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' \
|
|
543
|
+
'--from=[Build the bundle from a hand-written rom-weaver-bundle.json instead of flags. Use - to read it from stdin]:FILE:_files' \
|
|
544
|
+
'--schema-ref=[Record this \$schema URL in the bundle so editors can validate it. Left out unless asked for]:URL:_default' \
|
|
545
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
546
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
547
|
+
'(-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
|
+
'--no-bundle-rom[Keep the ROM out of --bundle and record only its checksums, so whoever applies the bundle brings their own copy]' \
|
|
549
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
550
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
551
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
552
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
553
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
554
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
555
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
556
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
557
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
558
|
+
'(--color)--no-color[Turn colors off]' \
|
|
559
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
560
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
561
|
+
&& ret=0
|
|
562
|
+
;;
|
|
563
|
+
(parse)
|
|
564
|
+
_arguments "${_arguments_options[@]}" : \
|
|
565
|
+
'-i+[Bundle file, or an archive with a bundle at its root]:INPUT:_files' \
|
|
566
|
+
'--input=[Bundle file, or an archive with a bundle at its root]:INPUT:_files' \
|
|
567
|
+
'*-s+[Handle only the bundle entries whose file name matches this exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
568
|
+
'*--select=[Handle only the bundle entries whose file name matches this exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
569
|
+
'*--filter=[Handle only the bundle'\''s rom entry or only its patch entries (repeatable, comma-separable)]:FILTER:(rom patch)' \
|
|
570
|
+
'-o+[Directory to unpack the bundle'\''s files into. Without it, files packed in an archive are listed but not written out]:DIR:_files' \
|
|
571
|
+
'--output=[Directory to unpack the bundle'\''s files into. Without it, files packed in an archive are listed but not written out]:DIR:_files' \
|
|
572
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
573
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
574
|
+
'(-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)' \
|
|
575
|
+
'--no-extract[Report what the bundle contains without unpacking any of it]' \
|
|
576
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
577
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
578
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
579
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
580
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
581
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
582
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
583
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
584
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
585
|
+
'(--color)--no-color[Turn colors off]' \
|
|
586
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
587
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
588
|
+
&& ret=0
|
|
589
|
+
;;
|
|
590
|
+
(schema)
|
|
591
|
+
_arguments "${_arguments_options[@]}" : \
|
|
592
|
+
'(-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)' \
|
|
593
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
594
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
595
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
596
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
597
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
598
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
599
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
600
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
601
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
602
|
+
'(--color)--no-color[Turn colors off]' \
|
|
603
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
604
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
605
|
+
&& ret=0
|
|
606
|
+
;;
|
|
607
|
+
(help)
|
|
608
|
+
_arguments "${_arguments_options[@]}" : \
|
|
609
|
+
":: :_rom-weaver__subcmd__bundle__subcmd__help_commands" \
|
|
610
|
+
"*::: :->help" \
|
|
611
|
+
&& ret=0
|
|
612
|
+
|
|
613
|
+
case $state in
|
|
614
|
+
(help)
|
|
615
|
+
words=($line[1] "${words[@]}")
|
|
616
|
+
(( CURRENT += 1 ))
|
|
617
|
+
curcontext="${curcontext%:*:*}:rom-weaver-bundle-help-command-$line[1]:"
|
|
618
|
+
case $line[1] in
|
|
619
|
+
(create)
|
|
620
|
+
_arguments "${_arguments_options[@]}" : \
|
|
621
|
+
&& ret=0
|
|
622
|
+
;;
|
|
623
|
+
(parse)
|
|
624
|
+
_arguments "${_arguments_options[@]}" : \
|
|
625
|
+
&& ret=0
|
|
626
|
+
;;
|
|
627
|
+
(schema)
|
|
628
|
+
_arguments "${_arguments_options[@]}" : \
|
|
629
|
+
&& ret=0
|
|
630
|
+
;;
|
|
631
|
+
(help)
|
|
632
|
+
_arguments "${_arguments_options[@]}" : \
|
|
633
|
+
&& ret=0
|
|
634
|
+
;;
|
|
635
|
+
esac
|
|
636
|
+
;;
|
|
637
|
+
esac
|
|
638
|
+
;;
|
|
639
|
+
esac
|
|
640
|
+
;;
|
|
641
|
+
esac
|
|
642
|
+
;;
|
|
643
|
+
(tools)
|
|
644
|
+
_arguments "${_arguments_options[@]}" : \
|
|
645
|
+
'(-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)' \
|
|
646
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
647
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
648
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
649
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
650
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
651
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
652
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
653
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
654
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
655
|
+
'(--color)--no-color[Turn colors off]' \
|
|
656
|
+
'-h[Print help]' \
|
|
657
|
+
'--help[Print help]' \
|
|
658
|
+
":: :_rom-weaver__subcmd__tools_commands" \
|
|
659
|
+
"*::: :->tools" \
|
|
660
|
+
&& ret=0
|
|
661
|
+
|
|
662
|
+
case $state in
|
|
663
|
+
(tools)
|
|
664
|
+
words=($line[1] "${words[@]}")
|
|
665
|
+
(( CURRENT += 1 ))
|
|
666
|
+
curcontext="${curcontext%:*:*}:rom-weaver-tools-command-$line[1]:"
|
|
667
|
+
case $line[1] in
|
|
668
|
+
(ppf-undo)
|
|
669
|
+
_arguments "${_arguments_options[@]}" : \
|
|
670
|
+
'-i+[The already-patched ROM to undo]:ROM:_files' \
|
|
671
|
+
'--input=[The already-patched ROM to undo]:ROM:_files' \
|
|
672
|
+
'--patch=[The PPF3 patch that was applied. It must carry undo data]:PPF:_files' \
|
|
673
|
+
'-o+[Where to write the restored ROM]:PATH:_files' \
|
|
674
|
+
'--output=[Where to write the restored ROM]:PATH:_files' \
|
|
675
|
+
'(-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)' \
|
|
676
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
677
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
678
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
679
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
680
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
681
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
682
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
683
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
684
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
685
|
+
'(--color)--no-color[Turn colors off]' \
|
|
686
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
687
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
688
|
+
&& ret=0
|
|
689
|
+
;;
|
|
690
|
+
(help)
|
|
691
|
+
_arguments "${_arguments_options[@]}" : \
|
|
692
|
+
":: :_rom-weaver__subcmd__tools__subcmd__help_commands" \
|
|
693
|
+
"*::: :->help" \
|
|
694
|
+
&& ret=0
|
|
695
|
+
|
|
696
|
+
case $state in
|
|
697
|
+
(help)
|
|
698
|
+
words=($line[1] "${words[@]}")
|
|
699
|
+
(( CURRENT += 1 ))
|
|
700
|
+
curcontext="${curcontext%:*:*}:rom-weaver-tools-help-command-$line[1]:"
|
|
701
|
+
case $line[1] in
|
|
702
|
+
(ppf-undo)
|
|
703
|
+
_arguments "${_arguments_options[@]}" : \
|
|
704
|
+
&& ret=0
|
|
705
|
+
;;
|
|
706
|
+
(help)
|
|
707
|
+
_arguments "${_arguments_options[@]}" : \
|
|
708
|
+
&& ret=0
|
|
709
|
+
;;
|
|
710
|
+
esac
|
|
711
|
+
;;
|
|
712
|
+
esac
|
|
713
|
+
;;
|
|
714
|
+
esac
|
|
715
|
+
;;
|
|
716
|
+
esac
|
|
717
|
+
;;
|
|
718
|
+
(plan-extract-batch)
|
|
719
|
+
_arguments "${_arguments_options[@]}" : \
|
|
720
|
+
'*--job-size=[Source size in bytes for one job; repeat once per job, in input order]:BYTES:_default' \
|
|
721
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
722
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
723
|
+
'--max-concurrency=[Hard cap on jobs running at once; defaults to the thread budget]:MAX_CONCURRENCY:_default' \
|
|
724
|
+
'--total-memory-bytes=[Total memory budget concurrent jobs may reserve (e.g. browser device memory); defaults to the platform'\''s physical memory]:TOTAL_MEMORY_BYTES:_default' \
|
|
725
|
+
'--memory-ceiling-bytes=[Combined working-set ceiling to plan against, used verbatim (no fraction/clamp). The browser passes its own resolved, mobile-capped ceiling here; when set it overrides --total-memory-bytes]:MEMORY_CEILING_BYTES:_default' \
|
|
726
|
+
'(-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)' \
|
|
727
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
728
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
729
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
730
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
731
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
732
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
733
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
734
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
735
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
736
|
+
'(--color)--no-color[Turn colors off]' \
|
|
737
|
+
'-h[Print help]' \
|
|
738
|
+
'--help[Print help]' \
|
|
739
|
+
&& ret=0
|
|
740
|
+
;;
|
|
741
|
+
(weave)
|
|
742
|
+
_arguments "${_arguments_options[@]}" : \
|
|
743
|
+
'-i+[ROM to patch. May be an archive, a disc sheet (.cue/.gdi), or a bundle]:PATH:_files' \
|
|
744
|
+
'--input=[ROM to patch. May be an archive, a disc sheet (.cue/.gdi), or a bundle]:PATH:_files' \
|
|
745
|
+
'*-s+[Pick which file to use when the ROM or a patch is inside an archive, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
746
|
+
'*--select=[Pick which file to use when the ROM or a patch is inside an archive, by exact name, prefix, or glob (repeatable)]:SELECT:_default' \
|
|
747
|
+
'--target=[For a .cue or .gdi input, which track gets the patch. Matched like --select and must hit exactly one track]:TARGET:_default' \
|
|
748
|
+
'*--filter=[Consider only files that look like a rom or a patch, judged by extension (repeatable, comma-separable)]:FILTER:(rom patch)' \
|
|
749
|
+
'*--patch=[Patch to apply. Repeat once per patch; they run in the order given]:PATCHES:_files' \
|
|
750
|
+
'-o+[Where to write the patched ROM. Optional when a bundle already names the output]:OUTPUT:_files' \
|
|
751
|
+
'--output=[Where to write the patched ROM. Optional when a bundle already names the output]:OUTPUT:_files' \
|
|
752
|
+
'--bundle=[Follow a rom-weaver-bundle.json recipe\: a file path, or an http(s) URL]:BUNDLE:_files' \
|
|
753
|
+
'*--with=[Turn on a bundle patch the bundle leaves off by default, matched by name or file name (repeatable)]:GLOB:_default' \
|
|
754
|
+
'*--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' \
|
|
757
|
+
'--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)' \
|
|
758
|
+
'*--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
|
+
'*--expect-in=[Stop unless the ROM about to be patched has this checksum, as in crc32=1234abcd (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
760
|
+
'*--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)' \
|
|
761
|
+
'*--patch-basis=[Which ROM the preceding --patch was built against\: auto, base, or previous \[default\: auto\]]:PATCH_BASIS:(auto base previous)' \
|
|
762
|
+
'--output-header=[Whether the finished ROM keeps its copier header\: auto, keep, or strip \[default\: auto\]]:OUTPUT_HEADER:(keep strip auto)' \
|
|
763
|
+
'*--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
|
+
'*--expect-out=[Fail unless the patched ROM has this checksum, as in sha1=abc... (repeatable, comma-separable)]:ALGO=HEX:_default' \
|
|
765
|
+
'*--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' \
|
|
768
|
+
'--emit-bundle=[Also write a rom-weaver-bundle.json recording this run, so someone else can repeat it]:PATH:_files' \
|
|
769
|
+
'-j+[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
770
|
+
'--threads=[How many threads to use at most. auto uses every core; a format may still use fewer]:auto|N:_default' \
|
|
771
|
+
'(-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)' \
|
|
772
|
+
'--no-extract[Do not look inside archives; treat the input and every patch as raw files]' \
|
|
773
|
+
'--no-ignore[Also consider files normally skipped inside archives\: readmes, images, checksum sidecars, and OS clutter such as .DS_Store]' \
|
|
774
|
+
'--no-compress[Write a plain ROM instead of compressing the result]' \
|
|
775
|
+
'--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
|
+
'--ignore-checksum-validation[Apply the patch even when its own checksums do not match. Can produce a broken ROM]' \
|
|
777
|
+
'--tui[Ask for each patch'\''s name, version, and author, then apply and write a bundle. Needs a terminal]' \
|
|
778
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
779
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
780
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
781
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
782
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
783
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
784
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
785
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
786
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
787
|
+
'(--color)--no-color[Turn colors off]' \
|
|
788
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
789
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
790
|
+
&& ret=0
|
|
791
|
+
;;
|
|
792
|
+
(completions)
|
|
793
|
+
_arguments "${_arguments_options[@]}" : \
|
|
794
|
+
'(-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)' \
|
|
795
|
+
'--json[Print one JSON object per line instead of human-readable output]' \
|
|
796
|
+
'(--no-progress)--progress[Show progress even when output is piped to a file or another program]' \
|
|
797
|
+
'(--progress)--no-progress[Hide progress]' \
|
|
798
|
+
'(--log-level -q --quiet)*-v[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
799
|
+
'(--log-level -q --quiet)*--verbose[Log more\: -v for info, -vv for debug, -vvv for trace]' \
|
|
800
|
+
'(--log-level -v --verbose)-q[Log errors only]' \
|
|
801
|
+
'(--log-level -v --verbose)--quiet[Log errors only]' \
|
|
802
|
+
'--dep-trace[Also log trace output from bundled libraries (for bug reports)]' \
|
|
803
|
+
'(--no-color)--color[Keep colors even when output is piped]' \
|
|
804
|
+
'(--color)--no-color[Turn colors off]' \
|
|
805
|
+
'-h[Print help (see more with '\''--help'\'')]' \
|
|
806
|
+
'--help[Print help (see more with '\''--help'\'')]' \
|
|
807
|
+
':shell -- Shell to print completions for:(bash elvish fish powershell zsh)' \
|
|
808
|
+
&& ret=0
|
|
809
|
+
;;
|
|
810
|
+
(help)
|
|
811
|
+
_arguments "${_arguments_options[@]}" : \
|
|
812
|
+
":: :_rom-weaver__subcmd__help_commands" \
|
|
813
|
+
"*::: :->help" \
|
|
814
|
+
&& ret=0
|
|
815
|
+
|
|
816
|
+
case $state in
|
|
817
|
+
(help)
|
|
818
|
+
words=($line[1] "${words[@]}")
|
|
819
|
+
(( CURRENT += 1 ))
|
|
820
|
+
curcontext="${curcontext%:*:*}:rom-weaver-help-command-$line[1]:"
|
|
821
|
+
case $line[1] in
|
|
822
|
+
(probe)
|
|
823
|
+
_arguments "${_arguments_options[@]}" : \
|
|
824
|
+
&& ret=0
|
|
825
|
+
;;
|
|
826
|
+
(extract)
|
|
827
|
+
_arguments "${_arguments_options[@]}" : \
|
|
828
|
+
&& ret=0
|
|
829
|
+
;;
|
|
830
|
+
(checksum)
|
|
831
|
+
_arguments "${_arguments_options[@]}" : \
|
|
832
|
+
&& ret=0
|
|
833
|
+
;;
|
|
834
|
+
(ingest)
|
|
835
|
+
_arguments "${_arguments_options[@]}" : \
|
|
836
|
+
&& ret=0
|
|
837
|
+
;;
|
|
838
|
+
(compress)
|
|
839
|
+
_arguments "${_arguments_options[@]}" : \
|
|
840
|
+
&& ret=0
|
|
841
|
+
;;
|
|
842
|
+
(trim)
|
|
843
|
+
_arguments "${_arguments_options[@]}" : \
|
|
844
|
+
&& ret=0
|
|
845
|
+
;;
|
|
846
|
+
(patch)
|
|
847
|
+
_arguments "${_arguments_options[@]}" : \
|
|
848
|
+
":: :_rom-weaver__subcmd__help__subcmd__patch_commands" \
|
|
849
|
+
"*::: :->patch" \
|
|
850
|
+
&& ret=0
|
|
851
|
+
|
|
852
|
+
case $state in
|
|
853
|
+
(patch)
|
|
854
|
+
words=($line[1] "${words[@]}")
|
|
855
|
+
(( CURRENT += 1 ))
|
|
856
|
+
curcontext="${curcontext%:*:*}:rom-weaver-help-patch-command-$line[1]:"
|
|
857
|
+
case $line[1] in
|
|
858
|
+
(apply)
|
|
859
|
+
_arguments "${_arguments_options[@]}" : \
|
|
860
|
+
&& ret=0
|
|
861
|
+
;;
|
|
862
|
+
(validate)
|
|
863
|
+
_arguments "${_arguments_options[@]}" : \
|
|
864
|
+
&& ret=0
|
|
865
|
+
;;
|
|
866
|
+
(create)
|
|
867
|
+
_arguments "${_arguments_options[@]}" : \
|
|
868
|
+
&& ret=0
|
|
869
|
+
;;
|
|
870
|
+
esac
|
|
871
|
+
;;
|
|
872
|
+
esac
|
|
873
|
+
;;
|
|
874
|
+
(bundle)
|
|
875
|
+
_arguments "${_arguments_options[@]}" : \
|
|
876
|
+
":: :_rom-weaver__subcmd__help__subcmd__bundle_commands" \
|
|
877
|
+
"*::: :->bundle" \
|
|
878
|
+
&& ret=0
|
|
879
|
+
|
|
880
|
+
case $state in
|
|
881
|
+
(bundle)
|
|
882
|
+
words=($line[1] "${words[@]}")
|
|
883
|
+
(( CURRENT += 1 ))
|
|
884
|
+
curcontext="${curcontext%:*:*}:rom-weaver-help-bundle-command-$line[1]:"
|
|
885
|
+
case $line[1] in
|
|
886
|
+
(create)
|
|
887
|
+
_arguments "${_arguments_options[@]}" : \
|
|
888
|
+
&& ret=0
|
|
889
|
+
;;
|
|
890
|
+
(parse)
|
|
891
|
+
_arguments "${_arguments_options[@]}" : \
|
|
892
|
+
&& ret=0
|
|
893
|
+
;;
|
|
894
|
+
(schema)
|
|
895
|
+
_arguments "${_arguments_options[@]}" : \
|
|
896
|
+
&& ret=0
|
|
897
|
+
;;
|
|
898
|
+
esac
|
|
899
|
+
;;
|
|
900
|
+
esac
|
|
901
|
+
;;
|
|
902
|
+
(tools)
|
|
903
|
+
_arguments "${_arguments_options[@]}" : \
|
|
904
|
+
":: :_rom-weaver__subcmd__help__subcmd__tools_commands" \
|
|
905
|
+
"*::: :->tools" \
|
|
906
|
+
&& ret=0
|
|
907
|
+
|
|
908
|
+
case $state in
|
|
909
|
+
(tools)
|
|
910
|
+
words=($line[1] "${words[@]}")
|
|
911
|
+
(( CURRENT += 1 ))
|
|
912
|
+
curcontext="${curcontext%:*:*}:rom-weaver-help-tools-command-$line[1]:"
|
|
913
|
+
case $line[1] in
|
|
914
|
+
(ppf-undo)
|
|
915
|
+
_arguments "${_arguments_options[@]}" : \
|
|
916
|
+
&& ret=0
|
|
917
|
+
;;
|
|
918
|
+
esac
|
|
919
|
+
;;
|
|
920
|
+
esac
|
|
921
|
+
;;
|
|
922
|
+
(plan-extract-batch)
|
|
923
|
+
_arguments "${_arguments_options[@]}" : \
|
|
924
|
+
&& ret=0
|
|
925
|
+
;;
|
|
926
|
+
(weave)
|
|
927
|
+
_arguments "${_arguments_options[@]}" : \
|
|
928
|
+
&& ret=0
|
|
929
|
+
;;
|
|
930
|
+
(completions)
|
|
931
|
+
_arguments "${_arguments_options[@]}" : \
|
|
932
|
+
&& ret=0
|
|
933
|
+
;;
|
|
934
|
+
(help)
|
|
935
|
+
_arguments "${_arguments_options[@]}" : \
|
|
936
|
+
&& ret=0
|
|
937
|
+
;;
|
|
938
|
+
esac
|
|
939
|
+
;;
|
|
940
|
+
esac
|
|
941
|
+
;;
|
|
942
|
+
esac
|
|
943
|
+
;;
|
|
944
|
+
esac
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
(( $+functions[_rom-weaver_commands] )) ||
|
|
948
|
+
_rom-weaver_commands() {
|
|
949
|
+
local commands; commands=(
|
|
950
|
+
'probe:Identify a file\: its format, its platform, and any header it carries' \
|
|
951
|
+
'inspect:Identify a file\: its format, its platform, and any header it carries' \
|
|
952
|
+
'extract:Unpack an archive or disc image' \
|
|
953
|
+
'checksum:Compute checksums for a file, or for a ROM inside an archive' \
|
|
954
|
+
'ingest:Sort a file into ROMs and patches, unpacking and hashing along the way' \
|
|
955
|
+
'compress:Pack files into an archive or a compressed disc image' \
|
|
956
|
+
'trim:Cut the padding off a ROM, or put it back' \
|
|
957
|
+
'patch:Apply, create, or check ROM patches' \
|
|
958
|
+
'bundle:Build and read rom-weaver-bundle.json patch recipes' \
|
|
959
|
+
'tools:One-off recovery tools' \
|
|
960
|
+
'plan-extract-batch:Plan a memory-/thread-aware concurrent extraction schedule from per-job source sizes (no I/O)' \
|
|
961
|
+
'weave:Apply one or more patches to a ROM, in order (same as \`patch apply\`)' \
|
|
962
|
+
'completions:Print a tab-completion script for your shell' \
|
|
963
|
+
'help:Print this message or the help of the given subcommand(s)' \
|
|
964
|
+
)
|
|
965
|
+
_describe -t commands 'rom-weaver commands' commands "$@"
|
|
966
|
+
}
|
|
967
|
+
(( $+functions[_rom-weaver__subcmd__bundle_commands] )) ||
|
|
968
|
+
_rom-weaver__subcmd__bundle_commands() {
|
|
969
|
+
local commands; commands=(
|
|
970
|
+
'create:Write a rom-weaver-bundle.json recipe from local ROM and patch files' \
|
|
971
|
+
'parse:Read a rom-weaver-bundle.json recipe and report what it points at' \
|
|
972
|
+
'schema:Print the rom-weaver-bundle.json JSON Schema, for editors and hand-authoring' \
|
|
973
|
+
'help:Print this message or the help of the given subcommand(s)' \
|
|
974
|
+
)
|
|
975
|
+
_describe -t commands 'rom-weaver bundle commands' commands "$@"
|
|
976
|
+
}
|
|
977
|
+
(( $+functions[_rom-weaver__subcmd__bundle__subcmd__create_commands] )) ||
|
|
978
|
+
_rom-weaver__subcmd__bundle__subcmd__create_commands() {
|
|
979
|
+
local commands; commands=()
|
|
980
|
+
_describe -t commands 'rom-weaver bundle create commands' commands "$@"
|
|
981
|
+
}
|
|
982
|
+
(( $+functions[_rom-weaver__subcmd__bundle__subcmd__help_commands] )) ||
|
|
983
|
+
_rom-weaver__subcmd__bundle__subcmd__help_commands() {
|
|
984
|
+
local commands; commands=(
|
|
985
|
+
'create:Write a rom-weaver-bundle.json recipe from local ROM and patch files' \
|
|
986
|
+
'parse:Read a rom-weaver-bundle.json recipe and report what it points at' \
|
|
987
|
+
'schema:Print the rom-weaver-bundle.json JSON Schema, for editors and hand-authoring' \
|
|
988
|
+
'help:Print this message or the help of the given subcommand(s)' \
|
|
989
|
+
)
|
|
990
|
+
_describe -t commands 'rom-weaver bundle help commands' commands "$@"
|
|
991
|
+
}
|
|
992
|
+
(( $+functions[_rom-weaver__subcmd__bundle__subcmd__help__subcmd__create_commands] )) ||
|
|
993
|
+
_rom-weaver__subcmd__bundle__subcmd__help__subcmd__create_commands() {
|
|
994
|
+
local commands; commands=()
|
|
995
|
+
_describe -t commands 'rom-weaver bundle help create commands' commands "$@"
|
|
996
|
+
}
|
|
997
|
+
(( $+functions[_rom-weaver__subcmd__bundle__subcmd__help__subcmd__help_commands] )) ||
|
|
998
|
+
_rom-weaver__subcmd__bundle__subcmd__help__subcmd__help_commands() {
|
|
999
|
+
local commands; commands=()
|
|
1000
|
+
_describe -t commands 'rom-weaver bundle help help commands' commands "$@"
|
|
1001
|
+
}
|
|
1002
|
+
(( $+functions[_rom-weaver__subcmd__bundle__subcmd__help__subcmd__parse_commands] )) ||
|
|
1003
|
+
_rom-weaver__subcmd__bundle__subcmd__help__subcmd__parse_commands() {
|
|
1004
|
+
local commands; commands=()
|
|
1005
|
+
_describe -t commands 'rom-weaver bundle help parse commands' commands "$@"
|
|
1006
|
+
}
|
|
1007
|
+
(( $+functions[_rom-weaver__subcmd__bundle__subcmd__help__subcmd__schema_commands] )) ||
|
|
1008
|
+
_rom-weaver__subcmd__bundle__subcmd__help__subcmd__schema_commands() {
|
|
1009
|
+
local commands; commands=()
|
|
1010
|
+
_describe -t commands 'rom-weaver bundle help schema commands' commands "$@"
|
|
1011
|
+
}
|
|
1012
|
+
(( $+functions[_rom-weaver__subcmd__bundle__subcmd__parse_commands] )) ||
|
|
1013
|
+
_rom-weaver__subcmd__bundle__subcmd__parse_commands() {
|
|
1014
|
+
local commands; commands=()
|
|
1015
|
+
_describe -t commands 'rom-weaver bundle parse commands' commands "$@"
|
|
1016
|
+
}
|
|
1017
|
+
(( $+functions[_rom-weaver__subcmd__bundle__subcmd__schema_commands] )) ||
|
|
1018
|
+
_rom-weaver__subcmd__bundle__subcmd__schema_commands() {
|
|
1019
|
+
local commands; commands=()
|
|
1020
|
+
_describe -t commands 'rom-weaver bundle schema commands' commands "$@"
|
|
1021
|
+
}
|
|
1022
|
+
(( $+functions[_rom-weaver__subcmd__checksum_commands] )) ||
|
|
1023
|
+
_rom-weaver__subcmd__checksum_commands() {
|
|
1024
|
+
local commands; commands=()
|
|
1025
|
+
_describe -t commands 'rom-weaver checksum commands' commands "$@"
|
|
1026
|
+
}
|
|
1027
|
+
(( $+functions[_rom-weaver__subcmd__completions_commands] )) ||
|
|
1028
|
+
_rom-weaver__subcmd__completions_commands() {
|
|
1029
|
+
local commands; commands=()
|
|
1030
|
+
_describe -t commands 'rom-weaver completions commands' commands "$@"
|
|
1031
|
+
}
|
|
1032
|
+
(( $+functions[_rom-weaver__subcmd__compress_commands] )) ||
|
|
1033
|
+
_rom-weaver__subcmd__compress_commands() {
|
|
1034
|
+
local commands; commands=()
|
|
1035
|
+
_describe -t commands 'rom-weaver compress commands' commands "$@"
|
|
1036
|
+
}
|
|
1037
|
+
(( $+functions[_rom-weaver__subcmd__extract_commands] )) ||
|
|
1038
|
+
_rom-weaver__subcmd__extract_commands() {
|
|
1039
|
+
local commands; commands=()
|
|
1040
|
+
_describe -t commands 'rom-weaver extract commands' commands "$@"
|
|
1041
|
+
}
|
|
1042
|
+
(( $+functions[_rom-weaver__subcmd__help_commands] )) ||
|
|
1043
|
+
_rom-weaver__subcmd__help_commands() {
|
|
1044
|
+
local commands; commands=(
|
|
1045
|
+
'probe:Identify a file\: its format, its platform, and any header it carries' \
|
|
1046
|
+
'extract:Unpack an archive or disc image' \
|
|
1047
|
+
'checksum:Compute checksums for a file, or for a ROM inside an archive' \
|
|
1048
|
+
'ingest:Sort a file into ROMs and patches, unpacking and hashing along the way' \
|
|
1049
|
+
'compress:Pack files into an archive or a compressed disc image' \
|
|
1050
|
+
'trim:Cut the padding off a ROM, or put it back' \
|
|
1051
|
+
'patch:Apply, create, or check ROM patches' \
|
|
1052
|
+
'bundle:Build and read rom-weaver-bundle.json patch recipes' \
|
|
1053
|
+
'tools:One-off recovery tools' \
|
|
1054
|
+
'plan-extract-batch:Plan a memory-/thread-aware concurrent extraction schedule from per-job source sizes (no I/O)' \
|
|
1055
|
+
'weave:Apply one or more patches to a ROM, in order (same as \`patch apply\`)' \
|
|
1056
|
+
'completions:Print a tab-completion script for your shell' \
|
|
1057
|
+
'help:Print this message or the help of the given subcommand(s)' \
|
|
1058
|
+
)
|
|
1059
|
+
_describe -t commands 'rom-weaver help commands' commands "$@"
|
|
1060
|
+
}
|
|
1061
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__bundle_commands] )) ||
|
|
1062
|
+
_rom-weaver__subcmd__help__subcmd__bundle_commands() {
|
|
1063
|
+
local commands; commands=(
|
|
1064
|
+
'create:Write a rom-weaver-bundle.json recipe from local ROM and patch files' \
|
|
1065
|
+
'parse:Read a rom-weaver-bundle.json recipe and report what it points at' \
|
|
1066
|
+
'schema:Print the rom-weaver-bundle.json JSON Schema, for editors and hand-authoring' \
|
|
1067
|
+
)
|
|
1068
|
+
_describe -t commands 'rom-weaver help bundle commands' commands "$@"
|
|
1069
|
+
}
|
|
1070
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__bundle__subcmd__create_commands] )) ||
|
|
1071
|
+
_rom-weaver__subcmd__help__subcmd__bundle__subcmd__create_commands() {
|
|
1072
|
+
local commands; commands=()
|
|
1073
|
+
_describe -t commands 'rom-weaver help bundle create commands' commands "$@"
|
|
1074
|
+
}
|
|
1075
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__bundle__subcmd__parse_commands] )) ||
|
|
1076
|
+
_rom-weaver__subcmd__help__subcmd__bundle__subcmd__parse_commands() {
|
|
1077
|
+
local commands; commands=()
|
|
1078
|
+
_describe -t commands 'rom-weaver help bundle parse commands' commands "$@"
|
|
1079
|
+
}
|
|
1080
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__bundle__subcmd__schema_commands] )) ||
|
|
1081
|
+
_rom-weaver__subcmd__help__subcmd__bundle__subcmd__schema_commands() {
|
|
1082
|
+
local commands; commands=()
|
|
1083
|
+
_describe -t commands 'rom-weaver help bundle schema commands' commands "$@"
|
|
1084
|
+
}
|
|
1085
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__checksum_commands] )) ||
|
|
1086
|
+
_rom-weaver__subcmd__help__subcmd__checksum_commands() {
|
|
1087
|
+
local commands; commands=()
|
|
1088
|
+
_describe -t commands 'rom-weaver help checksum commands' commands "$@"
|
|
1089
|
+
}
|
|
1090
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__completions_commands] )) ||
|
|
1091
|
+
_rom-weaver__subcmd__help__subcmd__completions_commands() {
|
|
1092
|
+
local commands; commands=()
|
|
1093
|
+
_describe -t commands 'rom-weaver help completions commands' commands "$@"
|
|
1094
|
+
}
|
|
1095
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__compress_commands] )) ||
|
|
1096
|
+
_rom-weaver__subcmd__help__subcmd__compress_commands() {
|
|
1097
|
+
local commands; commands=()
|
|
1098
|
+
_describe -t commands 'rom-weaver help compress commands' commands "$@"
|
|
1099
|
+
}
|
|
1100
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__extract_commands] )) ||
|
|
1101
|
+
_rom-weaver__subcmd__help__subcmd__extract_commands() {
|
|
1102
|
+
local commands; commands=()
|
|
1103
|
+
_describe -t commands 'rom-weaver help extract commands' commands "$@"
|
|
1104
|
+
}
|
|
1105
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__help_commands] )) ||
|
|
1106
|
+
_rom-weaver__subcmd__help__subcmd__help_commands() {
|
|
1107
|
+
local commands; commands=()
|
|
1108
|
+
_describe -t commands 'rom-weaver help help commands' commands "$@"
|
|
1109
|
+
}
|
|
1110
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__ingest_commands] )) ||
|
|
1111
|
+
_rom-weaver__subcmd__help__subcmd__ingest_commands() {
|
|
1112
|
+
local commands; commands=()
|
|
1113
|
+
_describe -t commands 'rom-weaver help ingest commands' commands "$@"
|
|
1114
|
+
}
|
|
1115
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__patch_commands] )) ||
|
|
1116
|
+
_rom-weaver__subcmd__help__subcmd__patch_commands() {
|
|
1117
|
+
local commands; commands=(
|
|
1118
|
+
'apply:Apply one or more patches to a ROM, in order' \
|
|
1119
|
+
'validate:Check that patches would apply cleanly, without writing anything' \
|
|
1120
|
+
'create:Build a patch from an original ROM and a changed one' \
|
|
1121
|
+
)
|
|
1122
|
+
_describe -t commands 'rom-weaver help patch commands' commands "$@"
|
|
1123
|
+
}
|
|
1124
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__patch__subcmd__apply_commands] )) ||
|
|
1125
|
+
_rom-weaver__subcmd__help__subcmd__patch__subcmd__apply_commands() {
|
|
1126
|
+
local commands; commands=()
|
|
1127
|
+
_describe -t commands 'rom-weaver help patch apply commands' commands "$@"
|
|
1128
|
+
}
|
|
1129
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__patch__subcmd__create_commands] )) ||
|
|
1130
|
+
_rom-weaver__subcmd__help__subcmd__patch__subcmd__create_commands() {
|
|
1131
|
+
local commands; commands=()
|
|
1132
|
+
_describe -t commands 'rom-weaver help patch create commands' commands "$@"
|
|
1133
|
+
}
|
|
1134
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__patch__subcmd__validate_commands] )) ||
|
|
1135
|
+
_rom-weaver__subcmd__help__subcmd__patch__subcmd__validate_commands() {
|
|
1136
|
+
local commands; commands=()
|
|
1137
|
+
_describe -t commands 'rom-weaver help patch validate commands' commands "$@"
|
|
1138
|
+
}
|
|
1139
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__plan-extract-batch_commands] )) ||
|
|
1140
|
+
_rom-weaver__subcmd__help__subcmd__plan-extract-batch_commands() {
|
|
1141
|
+
local commands; commands=()
|
|
1142
|
+
_describe -t commands 'rom-weaver help plan-extract-batch commands' commands "$@"
|
|
1143
|
+
}
|
|
1144
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__probe_commands] )) ||
|
|
1145
|
+
_rom-weaver__subcmd__help__subcmd__probe_commands() {
|
|
1146
|
+
local commands; commands=()
|
|
1147
|
+
_describe -t commands 'rom-weaver help probe commands' commands "$@"
|
|
1148
|
+
}
|
|
1149
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__tools_commands] )) ||
|
|
1150
|
+
_rom-weaver__subcmd__help__subcmd__tools_commands() {
|
|
1151
|
+
local commands; commands=(
|
|
1152
|
+
'ppf-undo:Undo a PPF3 patch, using the undo data stored inside it' \
|
|
1153
|
+
)
|
|
1154
|
+
_describe -t commands 'rom-weaver help tools commands' commands "$@"
|
|
1155
|
+
}
|
|
1156
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__tools__subcmd__ppf-undo_commands] )) ||
|
|
1157
|
+
_rom-weaver__subcmd__help__subcmd__tools__subcmd__ppf-undo_commands() {
|
|
1158
|
+
local commands; commands=()
|
|
1159
|
+
_describe -t commands 'rom-weaver help tools ppf-undo commands' commands "$@"
|
|
1160
|
+
}
|
|
1161
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__trim_commands] )) ||
|
|
1162
|
+
_rom-weaver__subcmd__help__subcmd__trim_commands() {
|
|
1163
|
+
local commands; commands=()
|
|
1164
|
+
_describe -t commands 'rom-weaver help trim commands' commands "$@"
|
|
1165
|
+
}
|
|
1166
|
+
(( $+functions[_rom-weaver__subcmd__help__subcmd__weave_commands] )) ||
|
|
1167
|
+
_rom-weaver__subcmd__help__subcmd__weave_commands() {
|
|
1168
|
+
local commands; commands=()
|
|
1169
|
+
_describe -t commands 'rom-weaver help weave commands' commands "$@"
|
|
1170
|
+
}
|
|
1171
|
+
(( $+functions[_rom-weaver__subcmd__ingest_commands] )) ||
|
|
1172
|
+
_rom-weaver__subcmd__ingest_commands() {
|
|
1173
|
+
local commands; commands=()
|
|
1174
|
+
_describe -t commands 'rom-weaver ingest commands' commands "$@"
|
|
1175
|
+
}
|
|
1176
|
+
(( $+functions[_rom-weaver__subcmd__patch_commands] )) ||
|
|
1177
|
+
_rom-weaver__subcmd__patch_commands() {
|
|
1178
|
+
local commands; commands=(
|
|
1179
|
+
'apply:Apply one or more patches to a ROM, in order' \
|
|
1180
|
+
'weave:Apply one or more patches to a ROM, in order' \
|
|
1181
|
+
'validate:Check that patches would apply cleanly, without writing anything' \
|
|
1182
|
+
'create:Build a patch from an original ROM and a changed one' \
|
|
1183
|
+
'help:Print this message or the help of the given subcommand(s)' \
|
|
1184
|
+
)
|
|
1185
|
+
_describe -t commands 'rom-weaver patch commands' commands "$@"
|
|
1186
|
+
}
|
|
1187
|
+
(( $+functions[_rom-weaver__subcmd__patch__subcmd__apply_commands] )) ||
|
|
1188
|
+
_rom-weaver__subcmd__patch__subcmd__apply_commands() {
|
|
1189
|
+
local commands; commands=()
|
|
1190
|
+
_describe -t commands 'rom-weaver patch apply commands' commands "$@"
|
|
1191
|
+
}
|
|
1192
|
+
(( $+functions[_rom-weaver__subcmd__patch__subcmd__create_commands] )) ||
|
|
1193
|
+
_rom-weaver__subcmd__patch__subcmd__create_commands() {
|
|
1194
|
+
local commands; commands=()
|
|
1195
|
+
_describe -t commands 'rom-weaver patch create commands' commands "$@"
|
|
1196
|
+
}
|
|
1197
|
+
(( $+functions[_rom-weaver__subcmd__patch__subcmd__help_commands] )) ||
|
|
1198
|
+
_rom-weaver__subcmd__patch__subcmd__help_commands() {
|
|
1199
|
+
local commands; commands=(
|
|
1200
|
+
'apply:Apply one or more patches to a ROM, in order' \
|
|
1201
|
+
'validate:Check that patches would apply cleanly, without writing anything' \
|
|
1202
|
+
'create:Build a patch from an original ROM and a changed one' \
|
|
1203
|
+
'help:Print this message or the help of the given subcommand(s)' \
|
|
1204
|
+
)
|
|
1205
|
+
_describe -t commands 'rom-weaver patch help commands' commands "$@"
|
|
1206
|
+
}
|
|
1207
|
+
(( $+functions[_rom-weaver__subcmd__patch__subcmd__help__subcmd__apply_commands] )) ||
|
|
1208
|
+
_rom-weaver__subcmd__patch__subcmd__help__subcmd__apply_commands() {
|
|
1209
|
+
local commands; commands=()
|
|
1210
|
+
_describe -t commands 'rom-weaver patch help apply commands' commands "$@"
|
|
1211
|
+
}
|
|
1212
|
+
(( $+functions[_rom-weaver__subcmd__patch__subcmd__help__subcmd__create_commands] )) ||
|
|
1213
|
+
_rom-weaver__subcmd__patch__subcmd__help__subcmd__create_commands() {
|
|
1214
|
+
local commands; commands=()
|
|
1215
|
+
_describe -t commands 'rom-weaver patch help create commands' commands "$@"
|
|
1216
|
+
}
|
|
1217
|
+
(( $+functions[_rom-weaver__subcmd__patch__subcmd__help__subcmd__help_commands] )) ||
|
|
1218
|
+
_rom-weaver__subcmd__patch__subcmd__help__subcmd__help_commands() {
|
|
1219
|
+
local commands; commands=()
|
|
1220
|
+
_describe -t commands 'rom-weaver patch help help commands' commands "$@"
|
|
1221
|
+
}
|
|
1222
|
+
(( $+functions[_rom-weaver__subcmd__patch__subcmd__help__subcmd__validate_commands] )) ||
|
|
1223
|
+
_rom-weaver__subcmd__patch__subcmd__help__subcmd__validate_commands() {
|
|
1224
|
+
local commands; commands=()
|
|
1225
|
+
_describe -t commands 'rom-weaver patch help validate commands' commands "$@"
|
|
1226
|
+
}
|
|
1227
|
+
(( $+functions[_rom-weaver__subcmd__patch__subcmd__validate_commands] )) ||
|
|
1228
|
+
_rom-weaver__subcmd__patch__subcmd__validate_commands() {
|
|
1229
|
+
local commands; commands=()
|
|
1230
|
+
_describe -t commands 'rom-weaver patch validate commands' commands "$@"
|
|
1231
|
+
}
|
|
1232
|
+
(( $+functions[_rom-weaver__subcmd__plan-extract-batch_commands] )) ||
|
|
1233
|
+
_rom-weaver__subcmd__plan-extract-batch_commands() {
|
|
1234
|
+
local commands; commands=()
|
|
1235
|
+
_describe -t commands 'rom-weaver plan-extract-batch commands' commands "$@"
|
|
1236
|
+
}
|
|
1237
|
+
(( $+functions[_rom-weaver__subcmd__probe_commands] )) ||
|
|
1238
|
+
_rom-weaver__subcmd__probe_commands() {
|
|
1239
|
+
local commands; commands=()
|
|
1240
|
+
_describe -t commands 'rom-weaver probe commands' commands "$@"
|
|
1241
|
+
}
|
|
1242
|
+
(( $+functions[_rom-weaver__subcmd__tools_commands] )) ||
|
|
1243
|
+
_rom-weaver__subcmd__tools_commands() {
|
|
1244
|
+
local commands; commands=(
|
|
1245
|
+
'ppf-undo:Undo a PPF3 patch, using the undo data stored inside it' \
|
|
1246
|
+
'help:Print this message or the help of the given subcommand(s)' \
|
|
1247
|
+
)
|
|
1248
|
+
_describe -t commands 'rom-weaver tools commands' commands "$@"
|
|
1249
|
+
}
|
|
1250
|
+
(( $+functions[_rom-weaver__subcmd__tools__subcmd__help_commands] )) ||
|
|
1251
|
+
_rom-weaver__subcmd__tools__subcmd__help_commands() {
|
|
1252
|
+
local commands; commands=(
|
|
1253
|
+
'ppf-undo:Undo a PPF3 patch, using the undo data stored inside it' \
|
|
1254
|
+
'help:Print this message or the help of the given subcommand(s)' \
|
|
1255
|
+
)
|
|
1256
|
+
_describe -t commands 'rom-weaver tools help commands' commands "$@"
|
|
1257
|
+
}
|
|
1258
|
+
(( $+functions[_rom-weaver__subcmd__tools__subcmd__help__subcmd__help_commands] )) ||
|
|
1259
|
+
_rom-weaver__subcmd__tools__subcmd__help__subcmd__help_commands() {
|
|
1260
|
+
local commands; commands=()
|
|
1261
|
+
_describe -t commands 'rom-weaver tools help help commands' commands "$@"
|
|
1262
|
+
}
|
|
1263
|
+
(( $+functions[_rom-weaver__subcmd__tools__subcmd__help__subcmd__ppf-undo_commands] )) ||
|
|
1264
|
+
_rom-weaver__subcmd__tools__subcmd__help__subcmd__ppf-undo_commands() {
|
|
1265
|
+
local commands; commands=()
|
|
1266
|
+
_describe -t commands 'rom-weaver tools help ppf-undo commands' commands "$@"
|
|
1267
|
+
}
|
|
1268
|
+
(( $+functions[_rom-weaver__subcmd__tools__subcmd__ppf-undo_commands] )) ||
|
|
1269
|
+
_rom-weaver__subcmd__tools__subcmd__ppf-undo_commands() {
|
|
1270
|
+
local commands; commands=()
|
|
1271
|
+
_describe -t commands 'rom-weaver tools ppf-undo commands' commands "$@"
|
|
1272
|
+
}
|
|
1273
|
+
(( $+functions[_rom-weaver__subcmd__trim_commands] )) ||
|
|
1274
|
+
_rom-weaver__subcmd__trim_commands() {
|
|
1275
|
+
local commands; commands=()
|
|
1276
|
+
_describe -t commands 'rom-weaver trim commands' commands "$@"
|
|
1277
|
+
}
|
|
1278
|
+
(( $+functions[_rom-weaver__subcmd__weave_commands] )) ||
|
|
1279
|
+
_rom-weaver__subcmd__weave_commands() {
|
|
1280
|
+
local commands; commands=()
|
|
1281
|
+
_describe -t commands 'rom-weaver weave commands' commands "$@"
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
if [ "$funcstack[1]" = "_rom-weaver" ]; then
|
|
1285
|
+
_rom-weaver "$@"
|
|
1286
|
+
else
|
|
1287
|
+
compdef _rom-weaver rom-weaver
|
|
1288
|
+
fi
|