CLI reference
The fwl-io command has four subcommands. Failures are reported as concise messages on stderr (never a traceback) and exit with status 1; success exits 0. sync and fetch aggregate per-dataset failures into a multi-line report, and a download failure lists every mirror attempt.
fwl-io sync
fwl-io sync path/to/manifest.toml
Queries the Zenodo record of every dataset in the manifest and rewrites the registry file next to the manifest. Rejects concept DOIs. All datasets are attempted; per-dataset failures are collected and reported together at the end, and successfully synced registries are still written.
fwl-io list
fwl-io list
Lists every dataset from all installed manifests with its location and consumers. Datasets without a committed registry are flagged [NO REGISTRY]. Providers whose manifest fails to load are reported on stderr and the exit status is 1.
fwl-io fetch
fwl-io fetch <model> [--data-root PATH]
Fetches every dataset that lists <model> in its required_by. All datasets are attempted; failures are aggregated into one report. --data-root overrides the FWL_DATA tree.
fwl-io mirror
DATAVERSE_TOKEN=... fwl-io mirror <zenodo-doi> --collection <alias> \
[--dataverse-url URL] [--contact-email EMAIL] [--subject SUBJECT] \
[--no-publish] [--dry-run]
Mirrors a pinned Zenodo deposit to a Dataverse collection: it downloads and checksum-verifies the deposit's files, creates a matching Dataverse dataset with citation metadata taken from the Zenodo record, uploads the files byte-identically (tabular ingest disabled), and by default publishes the dataset, then prints the Dataverse DOI to add to the consuming manifest. The API token is read from the DATAVERSE_TOKEN environment variable, never a command-line argument. A contact email (--contact-email) is required to create a dataset; only --dry-run, which makes no Dataverse writes, is exempt. --subject is validated by the server when the dataset is created, so a value outside the target installation's citation vocabulary is rejected then. --dry-run performs the download and metadata mapping only, making no Dataverse changes; --no-publish leaves the created dataset as a private draft. See Mirror a deposit to Dataverse.
fwl-io --version
Prints the installed version.