A framework for testing and managing Fi-Wi networks
Go to file
Robert McMahon 957078039d Fi-Wi: site setup, relay module, map/SSH consolidation
- Add site_setup entry (root shim + fiwi.site_setup) with SiteSetupApp and in-process
  relay/calibrate; FiWiRelayBootstrapApp in fiwi_relay/relay_app.py.
- CLI: run_panel_calibrate, parse_panel_calibrate_argv, shared BrainStem load helper;
  fiber_map_io.resolve_calibrate_ssh_targets for one merge of calibrate SSH hosts.
- Maps default under maps/; config and remote_ssh.env.example updates; concentrator
  and panel calibrate fixes; radiohead refactor; tests/docs refresh.
- Remove fiber_radio_port.py (unused example), empty fiwi_link stub, orphan peak_detect.reflex.

Made-with: Cursor
2026-04-04 18:18:27 -07:00
api first commit 2026-03-07 15:59:12 -08:00
brainstem_sdk Vendor BrainStem Linux SDK tarball and document unpack/build 2026-04-03 15:48:02 -07:00
cli first commit 2026-03-07 15:59:12 -08:00
config Fi-Wi: site setup, relay module, map/SSH consolidation 2026-04-04 18:18:27 -07:00
docs Fi-Wi: site setup, relay module, map/SSH consolidation 2026-04-04 18:18:27 -07:00
fiwi Fi-Wi: site setup, relay module, map/SSH consolidation 2026-04-04 18:18:27 -07:00
githooks check_concentrator: panel order, Power totals line; README + post-commit hook. 2026-04-03 14:54:40 -07:00
linux_brainstem_driverless first commit 2026-03-07 15:59:12 -08:00
reflex Add Reflex CLI, inrush Reflex program, and hub stem discovery 2026-04-03 15:54:26 -07:00
scripts Add Reflex CLI, inrush Reflex program, and hub stem discovery 2026-04-03 15:54:26 -07:00
tests Fi-Wi: site setup, relay module, map/SSH consolidation 2026-04-04 18:18:27 -07:00
.gitignore Fi-Wi: site setup, relay module, map/SSH consolidation 2026-04-04 18:18:27 -07:00
README.md check_concentrator: panel order, Power totals line; README + post-commit hook. 2026-04-03 14:54:40 -07:00
acronam_setup.sh first commit 2026-03-07 15:59:12 -08:00
fiber_map.example.json Fi-Wi: site setup, relay module, map/SSH consolidation 2026-04-04 18:18:27 -07:00
fiber_map.rpi20.json Refactor hub manager into hubmgr package for maintainability. 2026-03-27 18:33:55 -07:00
fiwi.py Fi-Wi: site setup, relay module, map/SSH consolidation 2026-04-04 18:18:27 -07:00
fiwi_env.sh feat(fiwi): Fi-Wi package, SSH transport, diagnostics, and docs 2026-03-30 18:16:57 -07:00
license.txt first commit 2026-03-07 15:59:12 -08:00
readme.txt first commit 2026-03-07 15:59:12 -08:00
remote_ssh.env.example Fi-Wi: site setup, relay module, map/SSH consolidation 2026-04-04 18:18:27 -07:00
requirements.txt SSH remote: ~/ paths via $HOME; discover hub/port table; test_read_remote 2026-04-03 12:05:34 -07:00
site_setup.py Fi-Wi: site setup, relay module, map/SSH consolidation 2026-04-04 18:18:27 -07:00
version.txt first commit 2026-03-07 15:59:12 -08:00

README.md

FiWiManager

Fi-Wi USB power-control hubs, fiber_map.json, SSH remotes, and related tooling. Deeper detail lives under docs/ (for example docs/fiwi-cli.md and docs/fiwi-design.md).

Git hooks: post-commit push and remote pull

You can use a post-commit hook that, after each commit, runs git push for the current branch to origin, then SSH to another machine (e.g. a lab Pi) and runs git pull in a clone there.

Install once per clone

./scripts/install-git-hooks.sh

That sets core.hooksPath to githooks/ so Git uses the tracked hook in this repository.

Enable (opt-in)

The hook does nothing unless you set:

export FIWI_POST_COMMIT_SYNC=1
export FIWI_POST_COMMIT_REMOTE='user@host'
export FIWI_POST_COMMIT_REMOTE_PATH='~/Code/FiWiManager'   # optional; default shown

Put those in your shell profile if you want them every session.

Variable Meaning
FIWI_POST_COMMIT_SYNC Must be 1 for the hook to run.
FIWI_POST_COMMIT_REMOTE SSH target for git pull (e.g. rjmcmahon@192.168.1.39). Required when SYNC=1; if empty, the hook skips both push and pull and prints a message.
FIWI_POST_COMMIT_REMOTE_PATH Directory of the FiWiManager clone on that host. Paths starting with ~/ are turned into $HOME/… on the remote.

Skip once: FIWI_POST_COMMIT_SYNC=0 git commit …

SSH: the hook uses ssh -o BatchMode=yes, so it expects non-interactive auth (keys).

Disable hooks from this repos githooks/ directory:

git config --unset core.hooksPath

See also comments at the top of githooks/post-commit.