# FiWiManager Fi-Wi USB power-control hubs, `fiber_map.json`, SSH remotes, and related tooling. Deeper detail lives under [`docs/`](docs/) (for example [`docs/fiwi-cli.md`](docs/fiwi-cli.md) and [`docs/fiwi-design.md`](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 ```bash ./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: ```bash 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 repo’s `githooks/` directory: ```bash git config --unset core.hooksPath ``` See also comments at the top of [`githooks/post-commit`](githooks/post-commit).