Work in progress. This project is in early development. APIs, data structures, and CLI interfaces are subject to change.
A generic C client library and CLI for interacting with pizza delivery restaurant APIs. Designed to be provider-agnostic — different restaurant backends can be added by implementing a small vtable interface.
make- A C11-compatible compiler (
apt install clangor equivalent) libcurl(brew install curl/apt install libcurl4-openssl-dev)
make # produces ./pizza-party
make clean./pizza-party stores <zip>
./pizza-party menu <store_id>
./pizza-party track <order_id>
./pizza-party watch <order_id> [poll_interval_seconds]Optional flags (before the command):
| Flag | Description |
|---|---|
-c <file> |
Path to config file (default: ~/.pizzaparty) |
-v |
Verbose HTTP output |
Plain key=value format:
base_url=https://order.example.com/power
api_key=your_key_here
timeout=30
verbose=0
A devcontainer configuration is included. Opening this repository in a supporting editor will install all dependencies automatically.
- Create
src/providers/<name>.cimplementing thepp_provider_tvtable (include/provider.h) - Register it early in
main.cwithpp_provider_register() - Add the source file to
SRCSin theMakefile
The vtable covers: store search, menu fetch, order validation, order placement, and order tracking.
