Command-line tooling for importing railway model datasets into a unified manifest.
locrawl validates source JSON payloads against per-domain schemas, merges them into a manifest, and validates the final manifest output before writing it.
- Schema-validated imports for collection, digital roster, track, and wishlist datasets.
- Safe merge behavior with explicit conflict handling.
- Optional overwrite mode for conflicts with
--force. - Atomic writes for manifest output files.
Ensure you have the Rust toolchain installed:
git clone https://github.com/CarloMicieli/locrawl.git
cd locrawl
cargo install --path .Show available commands:
locrawl --helpDisplay tool information:
locrawl infoImport a collection payload into a manifest:
locrawl import-collection \
--source ./samples/collection.json \
--output ./manifest.jsonImport digital roster assignments into a manifest:
locrawl import-digital-roster \
--source ./samples/digital_roster.json \
--output ./manifest.jsonImport track products and inventories into a manifest:
locrawl import-track \
--source ./samples/track_import.json \
--output ./manifest.jsonImport a wishlist into a manifest:
locrawl import-wishlist \
--source ./samples/wishlist.json \
--output ./manifest.jsonOverwrite conflicting entries during merge:
locrawl import-track \
--source ./samples/track_import.json \
--output ./manifest.json \
--force| Command | Description |
|---|---|
info |
Display basic tool information. |
import-collection |
Import collection data into a manifest file. |
import-digital-roster |
Import digital roster data into a manifest file. |
import-track |
Import track products and inventories into a manifest file. |
import-wishlist |
Import wishlist data into a manifest file. |
All import commands support:
-s, --source <PATH>: path to source JSON.-o, --output <PATH>: path to manifest JSON to create or update.-f, --force: overwrite conflicting existing entries.
For each import command:
- Input JSON is validated against its domain schema in
schema/. - Data is merged into an existing manifest or a new empty manifest.
- Output is validated against
schema/manifest_schema.json. - The manifest is written atomically to the output path.
- Fork the project
- Create your branch (
git checkout -b feature/my-change) - Commit changes (
git commit -m "Describe change") - Push branch (
git push origin feature/my-change) - Open a pull request