The nav-data-generator command-line tool that builds the SF50 TOLD
navigation database for a given AIRAC cycle.
This package ports the app's in-process nav-data pipeline into a standalone Swift executable so it can run headlessly in Linux CI, publishing per-cycle data files without requiring an Apple platform build.
For a requested NASR cycle, the generator:
- Initializes a timezone lookup database.
- Downloads and parses FAA NASR airport/runway/ILS data (SwiftNASR).
- Downloads and parses OurAirports CSV data for international airports (StreamingCSV).
- Downloads and parses FAA CIFP procedure data (SwiftCIFP).
- Downloads and parses the FAA Digital Obstacle File (SwiftDOF).
- Merges the datasets (NASR takes priority over OurAirports) into the shared
NavDataschema. - Writes the result as a binary property list, then compresses it with
StreamingLZMA's XZ container format —
byte-compatible with the app's
NSData.decompressed(using: .lzma).
$ swift run nav-data-generator --cycle current --output ./out| Option | Description | Default |
|---|---|---|
--cycle |
current, next, or a specific date (YYYY-MM-DD) |
current |
--output |
Directory to write <cycle>.plist and <cycle>.plist.lzma to |
current directory |
--print-cycle |
Print the resolved cycle identifier and exit, without running the pipeline | (off) |
--print-cycle is intended for CI, so a workflow can cheaply compute the target cycle
identifier before deciding whether to run the (expensive) full pipeline.
This package only builds the generator tool. The compressed data files it produces are published as GitHub Release assets by CI, not committed here.