@domsync/win32-arm64 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -1
- package/domsync.exe +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -22,6 +22,14 @@ npm (macOS, Linux and Windows):
|
|
|
22
22
|
npm i -g @domsync/cli
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
Go (any platform with a Go toolchain, built from source):
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
go install github.com/neiromaster/domsync/cmd/domsync@latest
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`go install` places the binary in `$GOBIN` (or `$HOME/go/bin`). The toolchain version is pinned in `go.mod`.
|
|
32
|
+
|
|
25
33
|
Install script (macOS and Linux):
|
|
26
34
|
|
|
27
35
|
```sh
|
|
@@ -143,6 +151,8 @@ Within each section, patterns are sorted; section order is otherwise preserved;
|
|
|
143
151
|
|
|
144
152
|
A missing local file is treated as an empty list, so the first run bootstraps the local snapshot from the router: every router domain is adopted and written locally. An empty local file with an empty router is a no-op. A plan whose final list would be empty while the router is not is an error: domsync refuses to wipe the router.
|
|
145
153
|
|
|
154
|
+
Concurrent runs are refused. A run holds an exclusive lock on `<source.domains>.domsync.lock` from the moment the configuration is loaded until every write and post-write command has finished, so a cron job and a manual run cannot interleave their reads and writes. The lock file stays on disk after the run; the lock itself is released by the operating system when the process exits, including after a crash.
|
|
155
|
+
|
|
146
156
|
### Router file validation
|
|
147
157
|
|
|
148
158
|
When reading the provider file from the router, domsync ignores blank lines and lines starting with `#` or `//`. Every other line must be a valid pattern; otherwise the run fails with the file, line number and offending text, and nothing is written. Duplicate patterns are collapsed. A bare `[media]` header on the router is therefore an error, not a domain.
|
|
@@ -185,12 +195,23 @@ YAML parsing is strict: unknown fields, multiple YAML documents and an empty fil
|
|
|
185
195
|
|
|
186
196
|
Config validation runs before SSH is dialled: a missing key file, a missing `known_hosts`, or an empty `target.ssh_key` with `SSH_AUTH_SOCK` unset fails with exit code 1 before any connection is attempted.
|
|
187
197
|
|
|
198
|
+
## Validation
|
|
199
|
+
|
|
200
|
+
`domsync validate` loads the configuration and parses the local list without opening an SSH connection. It covers everything `domsync` checks before dialing the router — the config schema, path resolution, the existence of `target.ssh_key` and `target.known_hosts`, and the local list syntax — and nothing that needs the router.
|
|
201
|
+
|
|
202
|
+
```sh
|
|
203
|
+
domsync validate
|
|
204
|
+
domsync --json validate
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Exit codes follow the table below: `1` for a configuration or read error and `2` for an invalid local list. With `--json` the output is one object with `ok`, `config`, `domains`, `total` and `sections`; on failure it carries an `error` object with the exit code and message.
|
|
208
|
+
|
|
188
209
|
## Exit codes
|
|
189
210
|
|
|
190
211
|
| Code | Meaning |
|
|
191
212
|
|---|---|
|
|
192
213
|
| `0` | Success, including "no changes". Also `--help` and `--version`. |
|
|
193
|
-
| `1` | Usage or configuration error, local file read/write error,
|
|
214
|
+
| `1` | Usage or configuration error, local file read/write error, log write error, or another run holding the local lock. |
|
|
194
215
|
| `2` | Validation error in the local list or the router provider file, including `--strict` warnings, and an empty final list. |
|
|
195
216
|
| `3` | SSH connection, authentication, host-key or remote read/write/verify error. |
|
|
196
217
|
| `4` | Update error, including the Homebrew/npm refusal. |
|
|
@@ -296,6 +317,10 @@ Tagging `v*` runs `.github/workflows/release.yml`. Maintainers need:
|
|
|
296
317
|
|
|
297
318
|
GoReleaser builds the archives, `checksums.txt`, the cosign bundle and SBOMs, publishes the GitHub release and the Homebrew cask; the release workflow adds build provenance attestations and then publishes the npm packages.
|
|
298
319
|
|
|
320
|
+
## Contributing
|
|
321
|
+
|
|
322
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for the development setup, commit conventions and the pull request workflow. Report vulnerabilities privately as described in [SECURITY.md](SECURITY.md).
|
|
323
|
+
|
|
299
324
|
## License
|
|
300
325
|
|
|
301
326
|
MIT
|
package/domsync.exe
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@domsync/win32-arm64","version":"1.0
|
|
1
|
+
{"name":"@domsync/win32-arm64","version":"1.1.0","os":"win32","cpu":"arm64","files":["domsync","domsync.exe"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/neiromaster/domsync.git"},"publishConfig":{"provenance":true,"access":"public"}}
|