@rom-weaver/cli 0.6.7 → 0.7.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 +136 -33
- package/bin/rom-weaver.mjs +4 -2
- package/package.json +23 -6
package/README.md
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
<h1 align="center"><img src="packages/rom-weaver-webapp/src/assets/app/root/logo.svg" alt="rom-weaver logo" width="64" height="64" align="middle"> rom-weaver</h1>
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
|
|
4
|
+
Local-first toolkit for ROMs and disc images: inspect, extract, compress, and apply, create, or bundle patches. Offline via a browser service-worker PWA or CLI.
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<a href="https://
|
|
8
|
+
<a href="https://www.npmjs.com/package/rom-weaver"><img alt="npm version" src="https://img.shields.io/npm/v/rom-weaver?logo=npm&logoColor=white&label=npm&color=d9690f"></a>
|
|
9
|
+
<a href="https://crates.io/crates/rom-weaver-cli"><img alt="crates.io version" src="https://img.shields.io/crates/v/rom-weaver-cli?logo=rust&logoColor=white&label=crates.io&color=d9690f"></a>
|
|
10
|
+
<a href="https://github.com/brandonocasey/rom-weaver/pkgs/container/rom-weaver-cli"><img alt="Container images on GitHub Container Registry" src="https://img.shields.io/badge/ghcr.io-rom--weaver-d9690f?logo=docker&logoColor=white"></a>
|
|
11
|
+
<a href="https://github.com/brandonocasey/homebrew-tap"><img alt="Homebrew tap" src="https://img.shields.io/badge/homebrew-brandonocasey%2Ftap-d9690f?logo=homebrew&logoColor=white"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="https://github.com/brandonocasey/rom-weaver/actions/workflows/ci.yml"><img alt="CI status" src="https://img.shields.io/github/actions/workflow/status/brandonocasey/rom-weaver/ci.yml?branch=main&logo=githubactions&logoColor=white&label=CI&color=4a6d63"></a>
|
|
9
16
|
<a href="package.json"><img alt="Node.js 22 or newer" src="https://img.shields.io/badge/Node.js-22%2B-4a6d63?logo=nodedotjs&logoColor=white"></a>
|
|
10
17
|
<a href=".mise.toml"><img alt="Rust 1.95" src="https://img.shields.io/badge/Rust-1.95-2c323b?logo=rust&logoColor=white"></a>
|
|
11
18
|
<a href="LICENSE.md"><img alt="AGPL-3.0-or-later license" src="https://img.shields.io/badge/license-AGPL--3.0--or--later-4a6d63"></a>
|
|
@@ -77,10 +84,11 @@ libraries elsewhere is not supported.
|
|
|
77
84
|
|
|
78
85
|
### First public release
|
|
79
86
|
|
|
80
|
-
v0.
|
|
81
|
-
git history go back further, but v0.6.0 through v0.6.
|
|
82
|
-
the release pipeline or were only partially published
|
|
83
|
-
|
|
87
|
+
v0.7.1 is the first public version available to install. The changelog and the
|
|
88
|
+
git history go back further, but v0.6.0 through v0.6.7 failed partway through
|
|
89
|
+
the release pipeline or were only partially published - v0.6.7 completed, but
|
|
90
|
+
its npm packages shipped a binary that could not start. v0.7.1 is the first
|
|
91
|
+
release with a complete set of working artifacts across npm, Homebrew, and the
|
|
84
92
|
container registry. Earlier version numbers describe development history or
|
|
85
93
|
incomplete releases only.
|
|
86
94
|
|
|
@@ -105,27 +113,135 @@ leave the device. Install it as a PWA from the browser menu to use it offline.
|
|
|
105
113
|
New here? [Try the sample weave](https://rom-weaver.com/?bundle=first-weave.zip#/weave)
|
|
106
114
|
with tiny synthetic files.
|
|
107
115
|
|
|
108
|
-
|
|
109
|
-
|
|
116
|
+
<a name="self-host-the-webapp"></a>
|
|
117
|
+
|
|
118
|
+
<details>
|
|
119
|
+
<summary>Self-host the webapp</summary>
|
|
120
|
+
|
|
121
|
+
The Docker source build serves the full webapp — WASM build, cross-origin
|
|
122
|
+
isolation headers, SPA fallback, and precompressed assets included. The
|
|
123
|
+
[self-hosting guide](docs/self-hosting.md) covers reverse proxies, subpath
|
|
124
|
+
routing, HTTPS certificates, service-worker scope, and the required COOP/COEP
|
|
125
|
+
headers.
|
|
126
|
+
|
|
127
|
+
Build and start it with Docker Compose:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
git clone https://github.com/brandonocasey/rom-weaver.git
|
|
131
|
+
cd rom-weaver
|
|
132
|
+
docker compose up --build --detach
|
|
133
|
+
curl --fail --silent --show-error http://localhost:8080/health
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Only Docker with Compose is required; the image installs its own build
|
|
137
|
+
toolchains. Set `PORT` to change the host port, for example
|
|
138
|
+
`PORT=3000 docker compose up --build --detach`.
|
|
139
|
+
For standalone TLS, mount a trusted certificate as described in the guide and
|
|
140
|
+
set `HTTPS_PORT` instead.
|
|
141
|
+
|
|
142
|
+
</details>
|
|
110
143
|
|
|
111
144
|
### CLI
|
|
112
145
|
|
|
113
|
-
|
|
146
|
+
Every method below installs the same prebuilt binary from the GitHub release.
|
|
147
|
+
The release covers macOS arm64 and x86-64; Linux x86-64 GNU plus x86-64,
|
|
148
|
+
arm64, and i686 musl; and Windows arm64, x86-64, and x86.
|
|
114
149
|
|
|
115
|
-
|
|
150
|
+
<details>
|
|
151
|
+
<summary>Homebrew (macOS arm64/Intel, Linux arm64/x86-64)</summary>
|
|
116
152
|
|
|
117
153
|
```bash
|
|
118
154
|
brew install brandonocasey/tap/rom-weaver
|
|
119
155
|
```
|
|
120
156
|
|
|
121
|
-
|
|
157
|
+
</details>
|
|
158
|
+
|
|
159
|
+
<details>
|
|
160
|
+
<summary>Scoop (Windows)</summary>
|
|
161
|
+
|
|
162
|
+
```powershell
|
|
163
|
+
scoop bucket add brandonocasey https://github.com/brandonocasey/scoop-bucket
|
|
164
|
+
scoop install rom-weaver
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
</details>
|
|
168
|
+
|
|
169
|
+
<details>
|
|
170
|
+
<summary>Install script (macOS, Linux)</summary>
|
|
171
|
+
|
|
172
|
+
Downloads the latest release to `~/.local/bin` and verifies its checksum.
|
|
173
|
+
Override with `ROM_WEAVER_INSTALL_DIR` or pin with `ROM_WEAVER_VERSION`.
|
|
122
174
|
|
|
123
175
|
```bash
|
|
124
176
|
curl --proto '=https' --tlsv1.2 -LsSf \
|
|
125
177
|
https://raw.githubusercontent.com/brandonocasey/rom-weaver/main/install.sh | sh
|
|
126
178
|
```
|
|
127
179
|
|
|
128
|
-
|
|
180
|
+
</details>
|
|
181
|
+
|
|
182
|
+
<details>
|
|
183
|
+
<summary>Install script (Windows)</summary>
|
|
184
|
+
|
|
185
|
+
The same thing for PowerShell, installing to `%LOCALAPPDATA%\rom-weaver\bin`.
|
|
186
|
+
|
|
187
|
+
```powershell
|
|
188
|
+
irm https://raw.githubusercontent.com/brandonocasey/rom-weaver/main/install.ps1 | iex
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
</details>
|
|
192
|
+
|
|
193
|
+
<details>
|
|
194
|
+
<summary>npm</summary>
|
|
195
|
+
|
|
196
|
+
Cross-platform, and the only channel that covers every supported target at
|
|
197
|
+
once. Needs Node.js 22+. The package is a launcher that pulls the right
|
|
198
|
+
prebuilt binary through platform-specific optional dependencies, so only your
|
|
199
|
+
platform's binary is downloaded.
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
npm install --global rom-weaver
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
For a one-off run, or to pin the version a repository's scripts expect, use the
|
|
206
|
+
scoped launcher directly:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
npx @rom-weaver/cli probe --input game.iso
|
|
210
|
+
npm install --save-dev @rom-weaver/cli
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
</details>
|
|
214
|
+
|
|
215
|
+
<details>
|
|
216
|
+
<summary>cargo-binstall</summary>
|
|
217
|
+
|
|
218
|
+
Downloads the same release binary rather than compiling the workspace, so it is
|
|
219
|
+
minutes faster than `cargo install`:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
cargo binstall rom-weaver-cli
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
</details>
|
|
226
|
+
|
|
227
|
+
<details>
|
|
228
|
+
<summary>mise</summary>
|
|
229
|
+
|
|
230
|
+
Useful when you want the version pinned per project in `mise.toml`. mise
|
|
231
|
+
verifies the release's GitHub artifact attestations on install. Pass an explicit
|
|
232
|
+
version from the [releases page](https://github.com/brandonocasey/rom-weaver/releases);
|
|
233
|
+
mise cannot resolve `@latest` for this repository:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
mise use github:brandonocasey/rom-weaver@0.6.7
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
</details>
|
|
240
|
+
|
|
241
|
+
<details>
|
|
242
|
+
<summary>Docker</summary>
|
|
243
|
+
|
|
244
|
+
Runs from the published Linux image without installing anything:
|
|
129
245
|
|
|
130
246
|
```bash
|
|
131
247
|
docker run --rm \
|
|
@@ -140,7 +256,12 @@ bind-mounted files keep their host ownership, so without it the container cannot
|
|
|
140
256
|
read files it does not own and leaves anything it writes owned by an unknown uid.
|
|
141
257
|
See [Run in Docker](docs/cli.md#run-in-docker).
|
|
142
258
|
|
|
143
|
-
|
|
259
|
+
</details>
|
|
260
|
+
|
|
261
|
+
<a name="build-from-source"></a>
|
|
262
|
+
|
|
263
|
+
<details>
|
|
264
|
+
<summary>Build from source</summary>
|
|
144
265
|
|
|
145
266
|
```bash
|
|
146
267
|
git clone https://github.com/brandonocasey/rom-weaver.git
|
|
@@ -152,32 +273,14 @@ rom-weaver --help
|
|
|
152
273
|
The source build requires Rust 1.95+, CMake, Clang, and a native compiler
|
|
153
274
|
toolchain.
|
|
154
275
|
|
|
276
|
+
</details>
|
|
277
|
+
|
|
155
278
|
Hitting `Permission denied`? See
|
|
156
279
|
[File permissions](docs/cli.md#file-permissions).
|
|
157
280
|
|
|
158
281
|
The [development guide](docs/development.md) covers the full toolchain setup,
|
|
159
282
|
webapp builds, and tests.
|
|
160
283
|
|
|
161
|
-
### Self-host the webapp
|
|
162
|
-
|
|
163
|
-
The Docker source build serves the full webapp — WASM build, cross-origin
|
|
164
|
-
isolation headers, SPA fallback, and precompressed assets included. The
|
|
165
|
-
[self-hosting guide](docs/self-hosting.md) covers reverse proxies, subpath
|
|
166
|
-
routing, service-worker scope, and the required COOP/COEP headers.
|
|
167
|
-
|
|
168
|
-
Build and start it with Docker Compose:
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
git clone https://github.com/brandonocasey/rom-weaver.git
|
|
172
|
-
cd rom-weaver
|
|
173
|
-
docker compose up --build --detach
|
|
174
|
-
curl --fail --silent --show-error http://localhost:8080/health
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
Only Docker with Compose is required; the image installs its own build
|
|
178
|
-
toolchains. Set `PORT` to change the host port, for example
|
|
179
|
-
`PORT=3000 docker compose up --build --detach`.
|
|
180
|
-
|
|
181
284
|
## Screenshots
|
|
182
285
|
|
|
183
286
|
[View every screenshot at full size.](docs/screenshots.md)
|
package/bin/rom-weaver.mjs
CHANGED
|
@@ -17,8 +17,10 @@ const linuxLibc = () => {
|
|
|
17
17
|
const platformPackage = (() => {
|
|
18
18
|
if (process.platform === "darwin") return `@rom-weaver/darwin-${process.arch}`;
|
|
19
19
|
if (process.platform === "win32") return `@rom-weaver/win32-${process.arch}-msvc`;
|
|
20
|
-
if (process.platform === "linux" &&
|
|
21
|
-
|
|
20
|
+
if (process.platform === "linux" && ["arm64", "ia32", "x64"].includes(process.arch)) {
|
|
21
|
+
const libc = process.arch === "x64" ? linuxLibc() : "musl";
|
|
22
|
+
return `@rom-weaver/linux-${process.arch}-${libc}`;
|
|
23
|
+
}
|
|
22
24
|
return null;
|
|
23
25
|
})();
|
|
24
26
|
|
package/package.json
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rom-weaver/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"author": "Brandon Casey",
|
|
5
5
|
"license": "AGPL-3.0-or-later",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Local-first toolkit for ROMs and disc images: inspect, extract, compress, and apply, create, or bundle patches. Offline via a browser service-worker PWA or CLI.",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"rom",
|
|
9
|
+
"rom-hack",
|
|
10
|
+
"patch",
|
|
11
|
+
"ips",
|
|
12
|
+
"bps",
|
|
13
|
+
"chd",
|
|
14
|
+
"rvz",
|
|
15
|
+
"z3ds",
|
|
16
|
+
"disc-image",
|
|
17
|
+
"cli"
|
|
18
|
+
],
|
|
7
19
|
"homepage": "https://rom-weaver.com",
|
|
8
20
|
"funding": "https://ko-fi.com/brandonocasey",
|
|
9
21
|
"repository": {
|
|
@@ -48,10 +60,15 @@
|
|
|
48
60
|
"node": ">=22"
|
|
49
61
|
},
|
|
50
62
|
"optionalDependencies": {
|
|
51
|
-
"@rom-weaver/darwin-arm64": "0.
|
|
52
|
-
"@rom-weaver/darwin-x64": "0.
|
|
53
|
-
"@rom-weaver/linux-
|
|
54
|
-
"@rom-weaver/
|
|
63
|
+
"@rom-weaver/darwin-arm64": "0.7.1",
|
|
64
|
+
"@rom-weaver/darwin-x64": "0.7.1",
|
|
65
|
+
"@rom-weaver/linux-arm64-musl": "0.7.1",
|
|
66
|
+
"@rom-weaver/linux-ia32-musl": "0.7.1",
|
|
67
|
+
"@rom-weaver/linux-x64-gnu": "0.7.1",
|
|
68
|
+
"@rom-weaver/linux-x64-musl": "0.7.1",
|
|
69
|
+
"@rom-weaver/win32-arm64-msvc": "0.7.1",
|
|
70
|
+
"@rom-weaver/win32-ia32-msvc": "0.7.1",
|
|
71
|
+
"@rom-weaver/win32-x64-msvc": "0.7.1"
|
|
55
72
|
},
|
|
56
73
|
"scripts": {
|
|
57
74
|
"docs:toc": "bash scripts/update-markdown-toc.sh",
|