#!/usr/bin/env bash # End-to-end demo of the PMP reference local node against the synthetic # "Avery Lindqvist" datasets. Run from the repository root after # `pip install -e .`: # # ./scripts/demo.sh [node-dir] # set -euo pipefail PY="${PYTHON:-python3}" NODE_DIR="${1:-$(mktemp -d)/avery-node}" EXPORT_FILE="$(dirname "$NODE_DIR")/avery-export.jsonl" echo "==> Using node dir: $NODE_DIR" echo "==> 1. Initialize node" "$PY" -m pmp init --node-dir "$NODE_DIR" --name "avery-laptop" echo "==> 2. Available adapters" "$PY" -m pmp adapters echo "==> 3. Import calendars (ICS)" "$PY" -m pmp import --node-dir "$NODE_DIR" --adapter ics-calendar \ samples/calendar/avery-personal.ics samples/calendar/avery-work.ics echo "==> 4. Import notes (markdown + plain text)" "$PY" -m pmp import --node-dir "$NODE_DIR" --adapter notes samples/notes echo "==> 5. Import mock photo EXIF metadata" "$PY" -m pmp import --node-dir "$NODE_DIR" --adapter photos samples/photos/avery-photos.json echo "==> 6. Re-import calendars (should deduplicate, importing 0 new)" "$PY" -m pmp import --node-dir "$NODE_DIR" --adapter ics-calendar \ samples/calendar/avery-personal.ics samples/calendar/avery-work.ics echo "==> 7. Inspect the log" "$PY" -m pmp log list --node-dir "$NODE_DIR" --limit 25 echo "==> 8. Verify hash chain and signatures" "$PY" -m pmp log verify --node-dir "$NODE_DIR" echo "==> 9. Export portable bundle" "$PY" -m pmp export --node-dir "$NODE_DIR" --out "$EXPORT_FILE" echo "==> Done. Node: $NODE_DIR Export: $EXPORT_FILE"